import './utils/disposable'; import type { SocketState, Unsubscribe, EventHandler } from './types'; /** * WorkerSocket — WebSocket running inside a Web Worker. * * Same interface as SharedSocket, but WebSocket lives off main thread. * Benefits: heartbeat timers and JSON parsing don't block UI rendering. * * Use when: * - High message rate (50+ msgs/sec) * - Heavy JSON payloads * - UI does complex rendering that could block main thread * * Don't use when: * - Low message rate (simple chat, notifications) * - Bundle size matters (adds worker file) * - Debugging (Worker DevTools is less convenient) */ export declare class WorkerSocket implements Disposable { private url; private options; private worker; private _state; private onMessageFns; private onStateChangeFns; constructor(url: string, options?: { protocols?: string[]; reconnect?: boolean; reconnectMaxDelay?: number; reconnectMaxRetries?: number; authFailureCloseCodes?: number[]; heartbeatInterval?: number; heartbeatTimeout?: number; sendBuffer?: number; workerUrl?: string | URL; auth?: () => string | Promise; authToken?: string; authParam?: string; pingPayload?: unknown; }); get state(): SocketState; private setState; connect(): Promise; private buildUrl; send(data: unknown): void; /** Manually trigger reconnect: resets retry counter, attempts a fresh connection. */ reconnect(): void; disconnect(): void; onMessage(fn: EventHandler): Unsubscribe; onStateChange(fn: (state: SocketState) => void): Unsubscribe; private createWorkerBlob; [Symbol.dispose](): void; }