import EventEmitter from 'events'; import { DashboardMessage, DashboardRequest } from './protocols/DashboardMessageProtocol'; export type WebSocketConnectorEventMap = { new: []; connecting: []; connected: []; closed: []; stateChange: [state: WebSocketConnectorState]; message: [message: DashboardMessage]; 'socket-closed': [code: number, reason: string]; }; export type WebSocketConnectorState = 'new' | 'connecting' | 'connected' | 'closed'; export declare interface WebSocketConnector { on(event: U, listener: (...args: WebSocketConnectorEventMap[U]) => void): this; off(event: U, listener: (...args: WebSocketConnectorEventMap[U]) => void): this; once(event: U, listener: (...args: WebSocketConnectorEventMap[U]) => void): this; emit(event: U, ...args: WebSocketConnectorEventMap[U]): boolean; } export type WebSocketConnectorConfig = { id?: string; url: string; getAccessToken?: () => Promise; }; export declare class WebSocketConnector extends EventEmitter { readonly config: WebSocketConnectorConfig; private readonly _codec; private readonly _pendingRequests; private _state; private _socket?; private _connectingTimer?; private _connectionTimeoutInSec; private _reconnectingTimer?; private _accessToken?; constructor(config: WebSocketConnectorConfig); get id(): string | undefined; get accessToken(): string | undefined; get state(): WebSocketConnectorState; private set state(value); close(code?: number, reason?: string): void; connect(accessToken?: string): Promise; request({ request, requestTimeoutInMs, }: { request: DashboardRequest; requestTimeoutInMs?: number; }): Promise; notify({ message, }: { message: DashboardMessage; queueOnConnectionLoss?: boolean; }): void; private _connecting; private _reconnect; private _rejectAndClearMessages; private _sendRequest; private _onOpen; private _onMessage; private _onError; private _onClose; } //# sourceMappingURL=WebSocketConnector.d.ts.map