import type { BrowserPool } from "./browser-pool.js"; import type { PageListenerInfo } from "./page-listener-types.js"; import { type WsServerConfig } from "./types.js"; export declare class BrowserWsServer { private readonly pool; private readonly config; private wss; private serverPort; private readonly clients; private readonly inputDispatcher; private mainHeartbeat; private lastCursorQueryAt; private lastCursor; constructor(pool: BrowserPool, config?: WsServerConfig); start(): Promise<{ port: number; host: string; }>; private tryStart; stop(): Promise; getPort(): number; getUrl(agentId: string, browserId?: string): string; private attachHandlers; private handleConnection; private handleInputMessage; private queryAndPushSelection; private queryAndPushCursor; private sendFrame; private sendJson; private closeClient; private startMainHeartbeat; private stopMainHeartbeat; broadcastListenerUpdate(agentId: string, browserId: string, listeners: PageListenerInfo[]): void; broadcastListenerTriggered(agentId: string, browserId: string, payload: { listenerId: string; selector: string; prompt: string; url: string; text: string; at: number; changeType?: "added" | "removed" | "changed" | "exists"; }): void; } export declare function getBrowserWsServer(pool: BrowserPool, config?: WsServerConfig): Promise; export declare function stopBrowserWsServer(): Promise;