/** * @file WebSocket Client * @description Low-level WebSocket connection manager with retries */ /** * WebSocket connection state */ export type WebSocketState = 'connecting' | 'connected' | 'disconnected' | 'reconnecting'; /** * WebSocket message handler */ export type MessageHandler = (data: unknown) => void; /** * WebSocket error handler */ export type ErrorHandler = (error: Event) => void; /** * WebSocket state change handler */ export type StateChangeHandler = (state: WebSocketState) => void; /** * WebSocket client configuration */ export interface WebSocketClientConfig { url: string; reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number; heartbeatInterval?: number; protocols?: string[]; } /** * WebSocket client class */ export declare class WebSocketClient { private socket; private config; private state; private reconnectAttempts; private reconnectTimeout; private heartbeatInterval; private messageHandlers; private errorHandlers; private stateChangeHandlers; private channelHandlers; constructor(config: WebSocketClientConfig); /** * Get current connection state */ getState(): WebSocketState; /** * Check if connected */ isConnected(): boolean; /** * Connect to WebSocket server */ connect(): void; /** * Disconnect from WebSocket server */ disconnect(): void; /** * Send message to server */ send(data: unknown): void; /** * Send message to specific channel */ sendToChannel(channel: string, data: unknown): void; /** * Subscribe to all messages */ onMessage(handler: MessageHandler): () => void; /** * Subscribe to specific channel */ subscribe(channel: string, handler: MessageHandler): () => void; /** * Subscribe to errors */ onError(handler: ErrorHandler): () => void; /** * Subscribe to state changes */ onStateChange(handler: StateChangeHandler): () => void; /** * Setup WebSocket event listeners */ private setupEventListeners; /** * Handle disconnection */ private handleDisconnect; /** * Schedule reconnection */ private scheduleReconnect; /** * Calculate exponential backoff delay */ private calculateBackoff; /** * Start heartbeat interval */ private startHeartbeat; /** * Clear heartbeat interval */ private clearHeartbeat; /** * Clear reconnect timeout */ private clearReconnectTimeout; /** * Update and broadcast state */ private setState; } /** * Create WebSocket client with default configuration */ export declare function createWebSocketClient(path?: string, config?: Partial): WebSocketClient;