import { SocketConnectionListenerMap as ChatConnectionListenerMap } from './events.js'; import { ChatLogger, ChatLogLevel } from './logging.js'; import { ChatTokenProvider } from './types.js'; /** @internal */ interface ChatRoomConnectionConfig { socketUrl: string; tokenProvider: ChatTokenProvider; maxReconnectAttempts?: number; roomId: string; logger: ChatLogger; logLevel: ChatLogLevel; } /** @internal */ type ConnectionState = 'connecting' | 'open' | 'close'; /** @internal */ export declare class ChatConnection { private roomId; private socketUrl; private tokenProvider; private reconnectAttemptCount; private closeReason; private eventEmitter; private logger; private maxReconnectAttempts; private _state; private socket; private tokenExpirationTime; logLevel: ChatLogLevel; constructor({ socketUrl, tokenProvider, maxReconnectAttempts, roomId, logger, logLevel, }: ChatRoomConnectionConfig); get state(): ConnectionState; private set state(value); close(): void; send(json: string): void; addListener(eventName: EventName, listener: ChatConnectionListenerMap[EventName]): () => void; removeListener(eventName: EventName, listener: ChatConnectionListenerMap[EventName]): void; private dispatchEvent; private reconnectIfNeeded; private requestToken; private onOpen; private onClose; private onError; private onMessage; private createSocket; clearSocket(): void; private logDebug; private logInfo; private logError; } export {}; //# sourceMappingURL=ChatConnection.d.ts.map