/** * WebSocket Connection Manager */ import { Server as HttpServer } from 'http'; import { EventEmitter } from 'events'; import { TerminalRegistry } from '../terminal/registry'; import { TerminalMatcher } from '../terminal/matcher'; import { MCPProtocolHandler } from '../mcp/handler'; import { QueuedTask } from '../queue/types'; /** * WebSocket Manager Configuration */ export interface WSManagerConfig { path?: string; maxConnections?: number; heartbeatInterval?: number; heartbeatTimeout?: number; authTimeout?: number; } /** * WebSocket Connection Manager */ export declare class WebSocketManager extends EventEmitter { private wsServer; private connections; private terminalConnections; private registry; private heartbeatMonitor; private matcher; private mcpHandler; private logger; private config; constructor(httpServer: HttpServer, mcpHandler: MCPProtocolHandler, config?: WSManagerConfig); /** * Setup WebSocket event handlers */ private setupEventHandlers; /** * Setup terminal registry event handlers */ private setupRegistryHandlers; /** * Handle new WebSocket connection */ private handleConnection; /** * Setup handlers for a connection */ private setupConnectionHandlers; /** * Handle incoming message */ private handleMessage; /** * Handle terminal registration */ private handleTerminalRegistration; /** * Handle heartbeat */ private handleHeartbeat; /** * Handle task update */ private handleTaskUpdate; /** * Handle result submission */ private handleResultSubmit; /** * Handle disconnection */ private handleDisconnection; /** * Send message to WebSocket */ private sendMessage; /** * Send error response */ private sendError; /** * Send message to specific terminal */ sendToTerminal(terminalId: string, message: any): boolean; /** * Broadcast message to all terminals */ broadcast(message: any, filter?: (terminalId: string) => boolean): void; /** * Start the WebSocket manager */ start(): void; /** * Stop the WebSocket manager */ stop(): void; /** * Get manager statistics */ getStatistics(): { connections: number; authenticatedConnections: number; registeredTerminals: number; registryStats: any; heartbeatStats: any; }; getRegistry(): TerminalRegistry; getMatcher(): TerminalMatcher; /** * Send task assignment to terminal */ sendTaskAssignment(terminalId: string, task: QueuedTask): boolean; /** * Send task cancellation to terminal */ sendTaskCancellation(terminalId: string, taskId: string, reason: string): boolean; /** * Send context update to terminals */ sendContextUpdate(terminalIds: string[], context: any): void; /** * Request task status from terminal */ requestTaskStatus(terminalId: string, taskId: string): boolean; } //# sourceMappingURL=manager.d.ts.map