/** * Gateway Server - WebSocket and HTTP server for OpenClaw * * Handles: * - WebSocket connections from clients, nodes, and channels * - HTTP API for configuration and management * - Static file serving for web UI * - Message routing between channels and agents */ import type { ConfigManager } from "../config/manager.js"; import type { SessionManager } from "./sessions.js"; import type { GatewayEventMap, GatewayServer, ServerStatus } from "./types/index.js"; /** Gateway options */ export interface GatewayOptions { configManager: ConfigManager; sessionManager: SessionManager; } /** Gateway implementation */ export declare class Gateway implements GatewayServer { private configManager; private sessionManager; private router; private config; private httpServer?; private wsServer?; private connections; private channelAdapters; private eventListeners; private startTime?; private connectionIdCounter; constructor(options: GatewayOptions); /** Start the gateway server */ start(): Promise; /** Stop the gateway server */ stop(): Promise; /** Get server status */ getStatus(): ServerStatus; private initializeChannels; private handleChannelMessage; private sendResponse; private handleHttpRequest; /** Set CORS headers */ private setCorsHeaders; private handleApiRequest; private handleStaticFile; /** Get content type by extension */ private getContentType; /** Handle HTTP upgrade to WebSocket */ private handleUpgrade; /** Handle WebSocket connection */ private handleWsConnection; /** Handle WebSocket message */ private handleWsMessage; /** Generate unique connection ID */ private generateConnectionId; /** Generate unique message ID */ private generateId; /** Read request body */ private readBody; /** Send JSON response */ private jsonResponse; /** Send error response */ private errorResponse; /** Start cleanup interval */ private startCleanupInterval; /** Add event listener */ on(event: T, listener: (data: GatewayEventMap[T]) => void): void; /** Remove event listener */ off(event: T, listener: (data: GatewayEventMap[T]) => void): void; /** Emit event */ private emit; } //# sourceMappingURL=server.d.ts.map