/** * Specialist Session Manager * * Manages persistent, contextual conversations with BC specialist personas. * Supports in-memory sessions by default with layer-configurable persistence. */ import { SpecialistSession, SessionSummary, SessionMessage, SessionContext, SessionManager, SessionStorageConfig, SessionEvents } from '../types/session-types.js'; import { MultiContentLayerService } from './multi-content-layer-service.js'; export declare class SpecialistSessionManager implements SessionManager { private storage; private layerService; private events; constructor(layerService: MultiContentLayerService, storageConfig?: SessionStorageConfig); /** * Start a new specialist session */ startSession(specialistId: string, userId: string, initialMessage?: string): Promise; /** * Get existing session */ getSession(sessionId: string): Promise; /** * Continue existing session with new message */ continueSession(sessionId: string, message: string): Promise; /** * Transfer session to different specialist */ transferSession(sessionId: string, toSpecialistId: string): Promise; /** * End session */ endSession(sessionId: string): Promise; /** * List user's sessions */ listUserSessions(userId: string): Promise; /** * List user's active sessions */ listActiveSessions(userId: string): Promise; /** * Add message to session */ addMessage(sessionId: string, message: SessionMessage): Promise; /** * Update session context */ updateContext(sessionId: string, context: Partial): Promise; /** * Cleanup expired sessions */ cleanupSessions(): Promise; /** * Subscribe to session events */ on(event: K, handler: SessionEvents[K]): void; /** * Get session statistics */ getSessionStats(userId?: string): Promise<{ totalSessions: number; activeSessions: number; totalMessages: number; averageSessionLength: number; }>; /** * Initialize storage based on configuration */ private initializeStorage; /** * Get all session summaries (for stats) */ private getAllSessionSummaries; } //# sourceMappingURL=specialist-session-manager.d.ts.map