import { SessionState } from '../models/SessionState.js'; interface Logger { debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; } /** * Defines the contract for managing user sessions in the SpecCoding MCP server. * Provides methods for session creation, retrieval, and updates. */ export interface ISessionManager { /** * Generates a new unique session identifier. */ generateSessionId(): string; /** * Retrieves the session state for the specified session ID. */ getSession(sessionId: string): SessionState; /** * Updates the session state for the specified session ID. */ updateSession(sessionId: string, state: SessionState): void; } /** * Manages user sessions for the SpecCoding MCP server. * Provides in-memory session storage with automatic expiration and cleanup. */ export declare class SessionManager implements ISessionManager { private readonly _specCodingConfiguration; private readonly _sessions; private readonly _logger; private readonly _sessionTimeout; private readonly _cleanupTimer; constructor(logger: Logger); /** * Generates a new unique session identifier using UUID. */ generateSessionId(): string; /** * Retrieves the session state for the specified session ID. * Automatically checks for session expiration and removes expired sessions. */ getSession(sessionId: string): SessionState; /** * Updates or creates a session with the specified state. * Automatically updates the updatedAt timestamp to current UTC time. */ updateSession(sessionId: string, state: SessionState): void; /** * Periodically cleans up expired sessions based on the configured timeout. */ private cleanupExpiredSessions; /** * Cleanup resources when the session manager is destroyed. */ dispose(): void; } export {}; //# sourceMappingURL=SessionManager.d.ts.map