import '//resources/js/cr.js';
import type { BrowserControlsServiceInterface } from '/shared/browser_controls_api.mojom-webui.js';
import { EventDispositionFlag } from '/shared/browser_controls_api_data_model.mojom-webui.js';
import type { IconUpdate } from '/shared/icon_handle.mojom-webui.js';
import type { ToolbarUIServiceInterface } from '/shared/toolbar_ui_api.mojom-webui.js';
import { ContextMenuType } from '/shared/toolbar_ui_api_data_model.mojom-webui.js';
import type { BackForwardButtonState, FocusRequestTarget, NavigationControlsState, OmniboxViewState, ReloadControlState } from '/shared/toolbar_ui_api_data_model.mojom-webui.js';
export { ContextMenuType, EventDispositionFlag, };
export type { BackForwardButtonState, IconUpdate, NavigationControlsState, OmniboxViewState, ReloadControlState, };
export type NavigationControlsStateListener = (icons: IconUpdate[], state: NavigationControlsState) => void;
export type NavigationControlsStateListenerHandle = number;
export declare const INVALID_NAVIGATION_CONTROLS_STATE_LISTENER_HANDLE: NavigationControlsStateListenerHandle;
export type FocusRequestListener = (target: FocusRequestTarget) => void;
export type FocusRequestHandle = number;
export declare const INVALID_FOCUS_REQUEST_HANDLE: FocusRequestHandle;
export interface BrowserProxy {
    browserControlsHandler: BrowserControlsServiceInterface;
    toolbarUIHandler: ToolbarUIServiceInterface;
    /**
     * Records a value in a histogram.
     * @param histogramName The name of the histogram.
     * @param value The value to record.
     * @param maxValue The maximum value of the histogram.
     */
    recordInHistogram(histogramName: string, value: number, maxValue: number): void;
    addNavigationStateListener(listener: NavigationControlsStateListener): NavigationControlsStateListenerHandle;
    addFocusRequestListener(listener: FocusRequestListener): FocusRequestHandle;
    removeNavigationStateListener(handle: NavigationControlsStateListenerHandle): void;
    removeFocusRequestListener(handle: FocusRequestHandle): void;
}
export declare class BrowserProxyImpl implements BrowserProxy {
    private callbackRouter;
    browserControlsHandler: BrowserControlsServiceInterface;
    toolbarUIHandler: ToolbarUIServiceInterface;
    private constructor();
    /**
     * Records a value in a histogram.
     * @param histogramName The name of the histogram.
     * @param value The value to record.
     * @param maxValue The maximum value of the histogram.
     */
    recordInHistogram(histogramName: string, value: number, maxValue: number): void;
    addNavigationStateListener(listener: NavigationControlsStateListener): number;
    addFocusRequestListener(listener: FocusRequestListener): number;
    removeNavigationStateListener(handle: NavigationControlsStateListenerHandle): void;
    removeFocusRequestListener(handle: FocusRequestHandle): void;
    static getInstance(): BrowserProxy;
    static setInstance(proxy: BrowserProxy): void;
}
