/** * MCP Session - Session management for MCP connections * * Handles lifecycle, state, and context for MCP client/server sessions. * * @example * ```typescript * import { MCPSession } from 'praisonai'; * * const session = new MCPSession({ id: 'session-1' }); * session.setContext('user', { name: 'John' }); * ``` */ /** * Session state */ export type SessionState = 'created' | 'initializing' | 'active' | 'suspended' | 'closed'; /** * Session context data */ export interface SessionContext { [key: string]: any; } /** * Session event */ export interface SessionEvent { type: 'created' | 'initialized' | 'suspended' | 'resumed' | 'closed' | 'error' | 'message'; timestamp: number; data?: any; } /** * Session configuration */ export interface MCPSessionConfig { /** Session ID (auto-generated if not provided) */ id?: string; /** Session name */ name?: string; /** Initial context */ context?: SessionContext; /** Session timeout in ms */ timeout?: number; /** Enable event logging */ logging?: boolean; /** Parent session ID */ parentId?: string; /** Metadata */ metadata?: Record; } /** * MCPSession - Manages MCP session lifecycle */ export declare class MCPSession { readonly id: string; readonly name: string; readonly parentId?: string; readonly createdAt: number; private state; private context; private events; private timeout; private logging; private metadata; private lastActivityAt; private timeoutHandle?; constructor(config?: MCPSessionConfig); /** * Initialize the session */ initialize(): Promise; /** * Suspend the session */ suspend(): void; /** * Resume the session */ resume(): void; /** * Close the session */ close(): void; /** * Get session state */ getState(): SessionState; /** * Check if session is active */ isActive(): boolean; /** * Set context value */ setContext(key: string, value: any): void; /** * Get context value */ getContext(key: string): any; /** * Get all context */ getAllContext(): SessionContext; /** * Clear context */ clearContext(): void; /** * Set metadata */ setMetadata(key: string, value: any): void; /** * Get metadata */ getMetadata(key: string): any; /** * Get all events */ getEvents(): SessionEvent[]; /** * Get session info */ getInfo(): { id: string; name: string; state: SessionState; createdAt: number; lastActivityAt: number; eventCount: number; parentId?: string; }; /** * Touch - update last activity time */ private touch; /** * Add event */ private addEvent; /** * Start timeout timer */ private startTimeoutTimer; /** * Reset timeout timer */ private resetTimeoutTimer; /** * Clear timeout timer */ private clearTimeoutTimer; /** * Export session state */ export(): { id: string; name: string; state: SessionState; context: SessionContext; metadata: Record; createdAt: number; events: SessionEvent[]; }; /** * Import session state */ static import(data: ReturnType): MCPSession; } /** * Session Manager - Manages multiple sessions */ export declare class SessionManager { private sessions; private logging; constructor(config?: { logging?: boolean; }); /** * Create a new session */ create(config?: MCPSessionConfig): MCPSession; /** * Get session by ID */ get(id: string): MCPSession | undefined; /** * Get all sessions */ getAll(): MCPSession[]; /** * Get active sessions */ getActive(): MCPSession[]; /** * Close session */ close(id: string): boolean; /** * Close all sessions */ closeAll(): void; /** * Get stats */ getStats(): { total: number; active: number; suspended: number; closed: number; }; } /** * Create a session */ export declare function createMCPSession(config?: MCPSessionConfig): MCPSession; /** * Create a session manager */ export declare function createSessionManager(config?: { logging?: boolean; }): SessionManager; export default MCPSession;