/** * WebSocket Transport for Claude Code Remote protocol. * * Protocol details: * - URL: wss://{host}/v1/sessions/ws/{sessionId}/subscribe?organization_uuid={orgUuid}[&replay=true] * - Messages are newline-delimited JSON (\n separated) * - On open: optionally send authMessage + \n * - Keep-alive: client sends {"type":"keep_alive"}\n every 50s * - Connection timeout: 5s * - Reconnect: exponential backoff up to 5 retries */ import type { WsAuthMessage, WsServerMessage } from "./types"; export interface TransportOptions { url: string; authMessage?: WsAuthMessage; signal?: AbortSignal; /** Custom headers for the WebSocket upgrade request (cookie, user-agent, etc.) */ headers?: Record; } export type TransportState = "connecting" | "connected" | "disconnected" | "error"; export declare class WsTransport { private ws; private keepAliveTimer; private messageQueue; private messageResolve; private _state; private _exitError; private readyResolve; private readyReject; private readyPromise; private abortHandler; private closed; readonly options: TransportOptions; get state(): TransportState; get exitError(): Error | null; constructor(options: TransportOptions); /** Wait for the connection to be ready */ waitReady(): Promise; private initialize; private enqueueMessage; /** Write a message to the WebSocket */ write(data: string): void; /** Signal end of input (no-op for WS, but matches SDK interface) */ endInput(): void; /** Async iterator over incoming messages */ readMessages(): AsyncGenerator; /** Close the connection */ close(): void; get isOpen(): boolean; } //# sourceMappingURL=transport.d.ts.map