import { Events } from '../shared/utils'; import { ReconnectionState } from '../features'; export interface WebSocketClientOptions { url: string; autoReconnect?: boolean; maxReconnectAttempts?: number; reconnectInterval?: number; pingInterval?: number; pingTimeout?: number; } export type ChannelHandler = (data: any) => void; export declare class WebSocketClient extends Events { private connectionManager; private reconnectionStrategy; private reconnectionState; private subscriptions; private pendingSubscriptions; private clientId; private options; constructor(options: WebSocketClientOptions); private setupEventHandlers; private handleMessage; private connect; private reconnect; private processPendingSubscriptions; private subscribeToChannel; subscribe(channel: string, filterOptions?: string[] | ChannelHandler, handler?: ChannelHandler): boolean; unsubscribe(channel: string): boolean; disconnect(): void; isConnected(): boolean; getClientId(): string | null; getConnectionState(): ReconnectionState; }