/** * Session Manager - Manager * * Main session management class. */ import type { Message, Session, SessionContext, SessionEvent, SessionEventType, SessionManagerConfig, SessionMetrics, TokenUsage } from "./types.js"; export declare class SessionManager { private readonly config; private readonly store; private readonly policyEngine; private readonly contextWindows; private eventListeners; private cleanupTimer?; constructor(config?: SessionManagerConfig); /** * Generate unique session ID */ private generateId; /** * Emit session event */ private emit; /** * Add event listener */ on(eventType: SessionEventType, listener: (event: SessionEvent) => void): void; /** * Remove event listener */ off(eventType: SessionEventType, listener: (event: SessionEvent) => void): void; /** * Create a new session */ create(userId: string, metadata?: Record): Promise; /** * Get session */ get(sessionId: string): Promise; /** * Get session with full context */ getContext(sessionId: string): Promise; /** * End a session (close it) */ end(sessionId: string): Promise; /** * Suspend session */ suspend(sessionId: string, reason: string): Promise; /** * Resume session */ resume(sessionId: string): Promise; /** * Add message to session */ addMessage(sessionId: string, message: Omit): Promise; /** * Get messages for a session */ getMessages(sessionId: string, options?: { limit?: number; offset?: number; }): Promise; /** * Get messages fitting token budget */ getMessagesForContext(sessionId: string, targetTokens: number): Promise; /** * Update token usage */ updateTokenUsage(sessionId: string, usage: Partial): Promise; /** * Get metrics for a session */ getMetrics(sessionId: string): Promise; /** * Get all sessions for a user */ listByUser(userId: string): Promise; /** * Delete session */ delete(sessionId: string): Promise; /** * Cleanup expired sessions */ cleanup(): Promise; /** * Close manager */ close(): Promise; } /** * Create a session manager */ export declare function createSessionManager(config?: SessionManagerConfig): SessionManager; //# sourceMappingURL=manager.d.ts.map