/** * Dashboard Server — Serves the live agent topology dashboard * * A zero-dependency HTTP + WebSocket server that streams topology events * to a browser-based visualization. Uses only Node.js built-in modules. * * @module DashboardServer * @version 1.0.0 */ import { EventEmitter } from 'events'; import type { TopologyTracker } from './topology'; /** Options for creating a DashboardServer */ export interface DashboardServerOptions { /** TCP port to listen on (default: 4820) */ port?: number; /** Hostname to bind to (default: '127.0.0.1') */ host?: string; /** Whether to open the browser automatically (default: true) */ open?: boolean; } /** * HTTP + WebSocket server for the live agent topology dashboard. * * Usage: * ```typescript * const topo = new TopologyTracker(); * const dashboard = new DashboardServer(topo, { port: 4820 }); * await dashboard.start(); * // Dashboard available at http://127.0.0.1:4820 * ``` */ export declare class DashboardServer extends EventEmitter { private readonly tracker; private readonly port; private readonly host; private server; private clients; private pingInterval; private eventHandler; private clientCounter; private deltaPending; constructor(tracker: TopologyTracker, options?: DashboardServerOptions); /** * Start the dashboard server. */ start(): Promise; /** * Stop the dashboard server. */ stop(): Promise; /** * Number of connected WebSocket clients. */ clientCount(): number; /** * The URL the dashboard is serving on. */ get url(): string; private handleHTTP; private handleUpgrade; private handleClientMessage; private broadcast; /** * Broadcast a delta patch to all connected clients. * Each client tracks its own lastSeq so we can compute per-client deltas. * For simplicity, we use a single shared delta and reset after broadcast. */ private broadcastDelta; private pingClients; } //# sourceMappingURL=dashboard-server.d.ts.map