import WebSocket from 'ws'; interface Options { timeout: number; shouldReconnect: (event: any, ws: RobustWebSocket) => number | undefined; } export default class RobustWebSocket { realWs?: WebSocket; url: string; attempts: number; reconnects: number; explicitlyClosed: boolean; binaryType: BinaryType; pendingReconnect?: number; connectTimeout?: number; listeners: Record; opts: Options; constructor(url: string, opts?: Partial); newWebSocket(url: string): void; clearPendingReconnectIfNeeded(): void; send(data: any): void; close(code?: number, reason?: string): void; reconnect(event: any): void; addEventListener(type: string, callback: any): void; removeEventListener(type: string, callback: any): void; dispatchEvent(event: any): void; } export {};