import { C as ChromeExtensionProxyPage, f as ChromePageDestroyOptions } from './page-1e107f16.js';

interface BridgeConnectTabOptions {
    /**
     * If true, the page will always track the active tab.
     * @default true
     */
    forceSameTabNavigation?: boolean;
}

declare class BridgeClient {
    endpoint: string;
    onBridgeCall: (method: string, args: any[]) => Promise<any>;
    onDisconnect?: (() => void) | undefined;
    private socket;
    serverVersion: string | null;
    constructor(endpoint: string, onBridgeCall: (method: string, args: any[]) => Promise<any>, onDisconnect?: (() => void) | undefined);
    connect(): Promise<unknown>;
    disconnect(): void;
}

declare class ExtensionBridgePageBrowserSide extends ChromeExtensionProxyPage {
    onDisconnect: () => void;
    onLogMessage: (message: string, type: 'log' | 'status') => void;
    bridgeClient: BridgeClient | null;
    private destroyOptions?;
    private newlyCreatedTabIds;
    constructor(onDisconnect?: () => void, onLogMessage?: (message: string, type: 'log' | 'status') => void, forceSameTabNavigation?: boolean);
    private setupBridgeClient;
    connect(): Promise<void>;
    connectNewTabWithUrl(url: string, options?: BridgeConnectTabOptions): Promise<void>;
    connectCurrentTab(options?: BridgeConnectTabOptions): Promise<void>;
    setDestroyOptions(options: ChromePageDestroyOptions): Promise<void>;
    destroy(): Promise<void>;
}

export { type BridgeConnectTabOptions as B, ExtensionBridgePageBrowserSide as E };
