export type WebViewHandle = { injectJavaScript: (script: string) => void; }; export type WebViewBridgeMessageIdentity = { bridgeId: string; connectionId: string; epoch: number; generation: number; kind: string; }; export type WebViewHostConnection = { connectionId: string; disconnect: () => void; epoch: number; generation: number; postMessage: (message: unknown) => void; subscribe: (listener: (message: TMessage) => void) => () => void; }; export type WebViewHostController = { attach: (handle: WebViewHandle) => void; beginLoad: () => void; completeLoad: () => void; detach: () => void; disconnect: () => void; handleMessage: (message: TMessage) => boolean; }; export declare const createWebViewHostController: (input: { bridgeId: string; connectionLabel: string; buildActivationScript: (input: { bridgeId: string; epoch: number; phase: "afterLoad"; }) => string; buildHostMessageScript: (input: { bridgeId: string; connectionId: string; epoch: number; generation: number; message: unknown; }) => string; onConnected: (connection: WebViewHostConnection) => void; onDisconnected?: () => void; onActivationRetryExhausted?: (error: Error) => void; activationRetryIntervalMs?: number; activationRetryTimeoutMs?: number; }) => WebViewHostController;