import { WebSocket } from 'ws'; import type { WSConnectionState } from '../../types/websocket.js'; import type { ConnectionEntry, AuthenticationParams, ConnectionStats, WSComponentDependencies } from './types.js'; export declare class ConnectionManager { private connections; private sessionConnections; private userConnections; private logger; constructor({ logger }: WSComponentDependencies); addConnection(connectionId: string, ws: WebSocket, state: WSConnectionState): void; removeConnection(connectionId: string): void; getConnection(connectionId: string): ConnectionEntry | undefined; getConnectionState(connectionId: string): WSConnectionState | undefined; getWebSocket(connectionId: string): WebSocket | undefined; authenticateConnection({ connectionId, userId, sessionId, roles, permissions, scopes, }: AuthenticationParams): void; getAllConnections(): ConnectionEntry[]; getConnectionsByUser(userId: string): ConnectionEntry[]; getConnectionsBySession(sessionId: string): ConnectionEntry[]; getStats(): ConnectionStats; cleanupStaleConnections(maxAge: number): number; updateLastActivity(connectionId: string): void; private isValidId; private cleanupUserConnections; private cleanupSessionConnections; private addToUserMapping; private addToSessionMapping; } //# sourceMappingURL=connection-manager.d.ts.map