type BinaryType = 'blob' | 'arraybuffer'; type BinaryTypeWSPackage = 'nodebuffer' | 'arraybuffer' | 'fragments'; type EventListenerOptions = boolean | { capture?: boolean; }; type AddEventListenerOptions = EventListenerOptions & { once?: boolean; passive?: boolean; }; type EventListenerOrEventListenerObject = (evt: MessageEvent) => unknown; export interface MessageEvent extends Event { readonly data: T; } type CloseEventInit = EventInit & { code: number; reason: string; wasClean: boolean; }; declare class CloseEvent extends Event { readonly code: number; readonly reason: string; readonly wasClean: boolean; constructor(type: string, init: CloseEventInit); } interface WebSocketForceEventMap { close: CloseEvent; error: Event; message: MessageEvent; open: Event; } export interface WSLike { url: string; protocol: string; extensions: string; binaryType: BinaryType | BinaryTypeWSPackage; bufferedAmount: number; readyState: number; dispatchEvent?(event: Event): boolean; emit?(event: string, ...args: any[]): boolean; close(code?: number, reason?: string): void; send(data: string | ArrayBuffer): void; addEventListener(type: string, listener: any, options?: any): void; removeEventListener(type: string, listener: any, options?: any): void; onopen?: ((ev: any) => any) | null; onclose?: ((ev: any) => any) | null; onerror?: ((ev: any) => any) | null; onmessage?: ((ev: any) => any) | null; } export declare class WebSocketForce { private _ws; private _closeListeners; private _forceClosed; private _closeEventDispatched; private _virtualCloseListeners; private _nativeCloseHandler; readonly CONNECTING = 0; readonly OPEN = 1; readonly CLOSING = 2; readonly CLOSED = 3; static readonly CONNECTING = 0; static readonly OPEN = 1; static readonly CLOSING = 2; static readonly CLOSED = 3; constructor(ws: WSType); private _registerNativeCloseHandler; private _unregisterNativeCloseHandler; private _triggerVirtualCloseListeners; get url(): string; get readyState(): number; get bufferedAmount(): number; get extensions(): string; get protocol(): string; get binaryType(): "blob" | "arraybuffer" | "nodebuffer" | "fragments"; set binaryType(type: "blob" | "arraybuffer" | "nodebuffer" | "fragments"); get onopen(): ((ev: any) => any) | null | undefined; set onopen(handler: ((ev: any) => any) | null | undefined); get onclose(): ((ev: any) => any) | null | undefined; set onclose(handler: ((ev: any) => any) | null | undefined); get onerror(): ((ev: any) => any) | null | undefined; set onerror(handler: ((ev: any) => any) | null | undefined); get onmessage(): ((ev: any) => any) | null | undefined; set onmessage(handler: ((ev: any) => any) | null | undefined); close(code?: number, reason?: string): void; send(data: string | ArrayBuffer): void; addEventListener(type: K, listener: (this: WebSocketForce, ev: WebSocketForceEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: WebSocketForce, ev: WebSocketForceEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; dispatchEvent(event: Event): boolean; emit(event: string, ...args: any[]): boolean; on(type: K, listener: (this: WebSocketForce, ev: WebSocketForceEventMap[K]) => unknown): this; on(type: string, listener: EventListenerOrEventListenerObject): this; off(type: K, listener: (this: WebSocketForce, ev: WebSocketForceEventMap[K]) => unknown): this; off(type: string, listener: EventListenerOrEventListenerObject): this; once(type: K): Promise; forceClose(code?: number, reason?: string): void; setMaxListeners(n: number): void; } export {};