import { Session, SessionOptions, MessageRole } from './session.js'; import { ITokenizer } from './tokenizers/i-tokenizer.js'; import { ISummarizer } from './summarization.js'; export interface SessionManagerOptions { persistencePath?: string; tokenizer?: ITokenizer; summarizer?: ISummarizer; defaultMaxTokens?: number; sessionTtlMs?: number; maxFileStateBytes?: number; } export declare class SessionManager { private readonly sessions; private readonly persistencePath; private readonly tokenizer; private readonly summarizer; private readonly defaultMaxTokens; private readonly sessionTtlMs; private readonly maxFileStateBytes; private pendingPersistTimer; private persistInFlight; constructor(options?: SessionManagerOptions); createSession(options?: SessionOptions): Session; getSession(id: string): Session | undefined; listSessions(): Session[]; deleteSession(id: string): boolean; addMessage(sessionId: string, role: MessageRole, content: string): Promise; /** Fetch an existing session, or create one with the given id. */ getOrCreateSession(id: string): Session; updateFileState(sessionId: string, filePath: string, content: string): void; clearFileState(sessionId: string, filePath: string): void; /** * Flush any pending debounced persist. Call this from the host's * shutdown handler so the last writes survive. */ flush(): Promise; private requireSession; private schedulePersist; private persistNow; private load; } //# sourceMappingURL=session-manager.d.ts.map