export declare class WebhookPoller { private readonly _impl; constructor(baseUrl: string, apiKey: string, slug: string); /** Start the WebSocket connection (no-op for HTTP pollers). */ start(todoPath: string, log?: (msg: string) => void, workspaceRoot?: string): void; /** Tear down any persistent connections. */ destroy(): void; /** * Poll once for the next pending task and append it to TODO.md. * For WebSocket mode: always returns false (tasks arrive via push). */ pollAndAppend(todoPath: string, workspaceRoot?: string): Promise; /** * Send a JSON frame to the server over the WebSocket connection. * No-op (returns false) in HTTP polling mode or when disconnected. */ sendFrame(payload: unknown): boolean; /** Pass the VNC password to use when a vnc_session start arrives. */ setVncPassword(password?: string): void; setGitEnabled(enabled: boolean): void; setFileBrowserEnabled(enabled: boolean): void; setVncEnabled(enabled: boolean): void; setRdpEnabled(enabled: boolean): void; setRdpSettings(s: { host?: string; port?: number; username?: string; password?: string; domain?: string; guacWsUrl?: string; }): void; /** Register a callback to fire each time the WS connection is established. */ setOnConnect(cb: () => void): void; /** Register a callback to fire each time a WS-pushed task is appended to TODO.md. */ setOnTaskAppend(cb: () => void): void; /** Register a callback for instant/steer messages (delivered live, not queued). */ setOnSteer(cb: (text: string, onDelivered: () => void) => void): void; setOnCommand(cb: (cmd: string) => void): void; setOnMcpUpdate(cb: (entries: Record) => void): void; setOnSkillUpdate(cb: (skills: unknown[]) => void): void; setOnExportRequest(cb: (agentId: string) => void): void; setOnRestoreRequest(cb: (agentId: string, downloadUrl: string) => void): void; setOnExportConfig(cb: (exportEnabled: boolean, exportDailyBackup: boolean, agentId: string) => void): void; /** True when backed by a WebSocket connection (vs HTTP polling). */ get isWebSocket(): boolean; }