import type { WsConnectionStatus, WsStatusListener } from './types.js'; type WsEventMap = { open: () => void; close: (code: number, reason: string) => void; error: (error: Event) => void; message: (data: string) => void; }; type WsEvent = keyof WsEventMap; export interface ReconnectingWebSocketOptions { maxRetries?: number; pingIntervalMs?: number; pingPayload?: string; staleWindowMs?: number; } export declare class ReconnectingWebSocket { private readonly socket; private readonly maxRetries; private readonly pingIntervalMs; private readonly pingPayload; private readonly staleWindowMs; private closed; private reconnectRequested; private lastCloseRetryCount; private pingTimer; private staleTimer; private listeners; private statusListeners; private status; private readyResolvers; constructor(url: string, options?: ReconnectingWebSocketOptions); private handleOpen; private handleClose; private handleError; private handleMessage; private setStatus; private callListener; private startPing; private stopPing; private armWatchdog; private clearWatchdog; send(data: string): void; close(): void; reconnect(): void; on(event: E, fn: WsEventMap[E]): void; off(event: E, fn: WsEventMap[E]): void; getStatus(): WsConnectionStatus; onStatus(fn: WsStatusListener): void; offStatus(fn: WsStatusListener): void; ready(): Promise; } export {}; //# sourceMappingURL=ReconnectingWebSocket.d.ts.map