import WebSocketMetrics from './websocket-metrics'; declare type OnClosedParams = { code: number; reason: string; }; export interface EventListener { onOpened: (() => any); onClosed: ((event: OnClosedParams) => any); onMessage: ((data: ArrayBuffer) => any); } export default abstract class WebSocketClient { private readonly _url; private readonly _listener; protected constructor(url: string, listener: EventListener); get url(): string; abstract get isConnecting(): boolean; abstract get isConnected(): boolean; abstract get metrics(): WebSocketMetrics; protected notifyOnOpened(): void; protected notifyOnClosed(event: OnClosedParams): void; protected notifyOnMessage(data: ArrayBuffer): void; abstract close(): void; abstract send(data: ArrayBufferLike | Blob | ArrayBufferView): Promise; } export {}; //# sourceMappingURL=websocket-client.d.ts.map