tasq/node_modules/@claude-flow/mcp/dist/session-manager.d.ts

55 lines
2.0 KiB
TypeScript

/**
* @claude-flow/mcp - Session Manager
*
* MCP session lifecycle management
*/
import { EventEmitter } from 'events';
import type { MCPSession, SessionState, SessionMetrics, MCPInitializeParams, TransportType, ILogger } from './types.js';
export interface SessionConfig {
maxSessions?: number;
sessionTimeout?: number;
cleanupInterval?: number;
enableMetrics?: boolean;
}
export declare class SessionManager extends EventEmitter {
private readonly logger;
private readonly sessions;
private readonly config;
private cleanupTimer?;
private sessionCounter;
private totalCreated;
private totalClosed;
private totalExpired;
constructor(logger: ILogger, config?: SessionConfig);
createSession(transport: TransportType): MCPSession;
initializeSession(sessionId: string, params: MCPInitializeParams): MCPSession | undefined;
authenticateSession(sessionId: string): boolean;
getSession(sessionId: string): MCPSession | undefined;
hasSession(sessionId: string): boolean;
getActiveSessions(): MCPSession[];
updateActivity(sessionId: string): boolean;
setState(sessionId: string, state: SessionState): boolean;
setMetadata(sessionId: string, key: string, value: unknown): boolean;
getMetadata(sessionId: string, key: string): unknown;
closeSession(sessionId: string, reason?: string): boolean;
removeSession(sessionId: string): boolean;
getSessionMetrics(): SessionMetrics;
getStats(): {
total: number;
byState: Record<SessionState, number>;
byTransport: Record<TransportType, number>;
totalCreated: number;
totalClosed: number;
totalExpired: number;
oldestSession?: Date;
newestSession?: Date;
};
cleanupExpiredSessions(): number;
private startCleanupTimer;
private stopCleanupTimer;
private generateSessionId;
clearAll(): void;
destroy(): void;
}
export declare function createSessionManager(logger: ILogger, config?: SessionConfig): SessionManager;
//# sourceMappingURL=session-manager.d.ts.map