/** * Terminal Registry - Manages all connected terminals */ import { EventEmitter } from 'events'; import { WebSocket } from 'ws'; import { TerminalStatus } from '@latestgraviton/protocol'; import { TerminalSession, TerminalFilterOptions, TerminalRegistrationRequest, TerminalRegistrationResponse } from './types'; /** * Terminal Registry Manager */ export declare class TerminalRegistry extends EventEmitter { private terminals; private terminalsByToken; private terminalsByCapability; private terminalsBySpecialization; private logger; private config; constructor(); /** * Register a new terminal */ register(ws: WebSocket, request: TerminalRegistrationRequest, ipAddress: string, userAgent?: string): Promise; /** * Get terminal by ID */ getTerminal(terminalId: string): TerminalSession | undefined; /** * Get terminal by token */ getTerminalByToken(token: string): TerminalSession | undefined; /** * Get all terminals */ getAllTerminals(): TerminalSession[]; /** * Get connected terminals */ getConnectedTerminals(): TerminalSession[]; /** * Get terminals by filter */ getTerminalsByFilter(filter: TerminalFilterOptions): TerminalSession[]; /** * Get terminals by capability */ getTerminalsByCapability(capability: string): TerminalSession[]; /** * Get terminals by specialization */ getTerminalsBySpecialization(specialization: string): TerminalSession[]; /** * Update terminal status */ updateStatus(terminalId: string, status: TerminalStatus): void; /** * Update terminal heartbeat */ updateHeartbeat(terminalId: string, metrics?: { cpuUsage: number; memoryUsage: number; tokenUsage: number; }): void; /** * Add task to terminal */ addTask(terminalId: string, taskId: string): void; /** * Remove task from terminal */ removeTask(terminalId: string, taskId: string, success?: boolean): void; /** * Disconnect terminal */ disconnect(terminalId: string, reason?: string): void; /** * Check for missed heartbeats */ checkHeartbeats(maxHeartbeatAge?: number): string[]; /** * Get registry statistics */ getStatistics(): { totalTerminals: number; connectedTerminals: number; idleTerminals: number; busyTerminals: number; totalTasks: number; capabilities: { [key: string]: number; }; specializations: { [key: string]: number; }; }; /** * Create initial performance metrics */ private createInitialMetrics; /** * Clean up resources */ cleanup(): void; } //# sourceMappingURL=registry.d.ts.map