import { Subscribe } from '../../utils/Subscribe'; export type RobustWebSocketConstructorOptions = { url: string | ((ws: RobustWebSocket) => string); protocols?: string[]; robustOptions?: RobustOptions; }; export type RobustOptions = { timeout?: number; shouldReconnect?: (event: CloseEvent, ws: RobustWebSocket) => undefined | number; should1000Reconnect?: boolean; ignoreConnectivityEvents?: boolean; automaticOpen?: boolean; }; export type RobustWebSocketEventDetail = { reconnects: number; attempts: number; }; export type RobustWebSocketEvent = Event & { detail: T; }; export type RobustWebSocketEventMap = { connecting: (event: RobustWebSocketEvent) => void; timeout: (event: RobustWebSocketEvent) => void; open: (event: RobustWebSocketEvent) => void; closing: () => void; close: (event: CloseEvent) => void; error: (event: Event) => void; message: (event: MessageEvent) => void; }; export declare class RobustWebSocket extends Subscribe { private _realWebSocket; private _url?; private _protocols; private _readyState; private _options; private _connectTimeout; private _attempts; private _reconnects; private _reconnectWhenOnlineAgain; private _explicitlyClosed; private _pendingReconnect; private _connectivityEventsAttached; private _heathCheckTimer; get attempts(): number; constructor(options?: RobustWebSocketConstructorOptions); setOptions(options: RobustWebSocketConstructorOptions): void; private _healthCheck; private _clearConnectTimeoutIfNeed; private _clearHeathCheckIfNeed; private _startHealthCheck; private _stopHealthCheck; private _clearPendingReconnectIfNeeded; private _online; private _offline; private _detachConnectivityEvents; private _attachConnectivityEvents; send: (data: string | ArrayBuffer | Blob | ArrayBufferView) => void | undefined; close: (code?: number | string, reason?: string) => void | undefined; open: (url?: string) => void; private _createWebSocket; private _removeWebSocketEvent; private _dispatchWebSocketEvent; private _webSocketOpenHandler; private _webSocketCloseHandler; private _webSocketErrorHandler; private _webSocketMessageHandler; private _reconnect; }