export interface Exponent { (lastTime: number): number; } export interface SocketReader { Exhausted(socket: Socket): any; Closed(socket: Socket): any; Message(message: Event, socket: Socket): any; Errored(message: Event, socket: Socket): any; Connected(event: Event, socket: Socket): any; Disconnected(event: Event, socket: Socket): any; Reconnecting(event: Event, socket: Socket): any; } export declare type SocketData = string | ArrayBuffer | Blob | ArrayBufferView | SharedArrayBuffer; export declare const OneSecond: number; export declare const OneMinute: number; export declare class Socket { addr: string; reader: SocketReader; private userClosed; private disconnected; private readonly maxWait; private readonly maxReconnect; private readonly exponent; private readonly writeBuffer; private lastWait; private attemptedConnects; private socket; constructor(addr: string, reader: SocketReader, exponent: Exponent | null, maxReconnects: number | 10, maxWait: number | 60000); connect(): void; send(message: SocketData): void; reset(): void; end(): void; _disconnected(event: Event): void; _opened(event: Event): void; _errored(event: Event): void; _messaged(event: Event): void; }