// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BWG_BWG_GATEWAY_PROTOCOL_H_
#define IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BWG_BWG_GATEWAY_PROTOCOL_H_

#import <Foundation/Foundation.h>

@protocol GeminiActuationDelegate;
@protocol GeminiPageStateChangeDelegate;
@protocol GeminiCameraDelegate;
@protocol GeminiConsentProviderDelegate;
@protocol GeminiSessionDelegate;
@protocol GeminiSuggestionDelegate;
@protocol GeminiTabPickerDelegate;

// Protocol for the BWG gateway, exposing what's needed upstream.
@protocol BWGGatewayProtocol

// Handlers for BWG protocols.
@property(nonatomic, weak) id<GeminiActuationDelegate> actuationHandler;
@property(nonatomic, weak) id<GeminiCameraDelegate> cameraHandler;
@property(nonatomic, weak) id<GeminiConsentProviderDelegate>
    consentProviderHandler;
@property(nonatomic, weak) id<GeminiPageStateChangeDelegate>
    pageStateChangeHandler;
@property(nonatomic, weak) id<GeminiSessionDelegate> sessionHandler;
@property(nonatomic, weak) id<GeminiSuggestionDelegate> suggestionHandler;
@property(nonatomic, weak) id<GeminiTabPickerDelegate> tabPickerHandler;

@end

#endif  // IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BWG_BWG_GATEWAY_PROTOCOL_H_
