import { BaseChannel } from './index'; /** * WebSocket Channel — v1.1.0 * * Enhanced with: * - Room support (multiple clients in a room) * - Heartbeat/ping-pong to detect disconnected clients * - Reconnection handling (session persistence) * - Binary message support * - Connection authentication (optional token in query string) */ export interface WebSocketChannelConfig { port?: number; /** Heartbeat interval in ms (default: 30000) */ heartbeatInterval?: number; /** Valid auth tokens (if empty, no auth required) */ authTokens?: string[]; /** Max clients per room (default: 100) */ maxClientsPerRoom?: number; } export declare class WebSocketChannel extends BaseChannel { readonly type = "websocket"; private wss; private config; private clients; private rooms; private heartbeatTimer; constructor(configOrPort?: number | WebSocketChannelConfig); start(): Promise; stop(): Promise; /** Handle text (JSON) messages */ private handleTextMessage; /** Handle binary messages */ private handleBinaryMessage; /** Join a room */ joinRoom(sessionId: string, roomId: string): boolean; /** Leave a room */ leaveRoom(sessionId: string, roomId: string): void; /** Remove client completely */ private removeClient; /** Get room member session IDs */ getRoomMembers(roomId: string): string[]; /** Get all rooms */ getRooms(): string[]; /** Broadcast to all clients */ broadcast(content: string): void; /** Broadcast to all clients in a room */ broadcastToRoom(roomId: string, data: any, excludeSessionId?: string): void; /** Send to specific session */ sendToSession(sessionId: string, data: any): boolean; /** Get connection stats */ getStats(): { clients: number; rooms: number; roomDetails: Record; }; } //# sourceMappingURL=websocket.d.ts.map