import type { MemoryStorePort } from "./memory-store.js"; import type { TokenUsage, ModelInfo, ContextStats, CompactionStrategy, CompactionResult, DirectMessage, GroupMessage } from "./types.js"; export interface SessionContextRecord { sessionId: string; tokens: { totalInput: number; totalOutput: number; totalReasoning: number; }; modelInfo?: ModelInfo; lastActivity: string; compactions: { timestamp: string; strategy: CompactionStrategy; freedTokens: number; messageCount: number; }[]; overflowWarned: boolean; messageCount: number; } export declare class ContextManager { private sessions; private memoryStore; constructor(memoryStore: MemoryStorePort); lookupModelLimits(modelName: string): { contextLimit: number; maxOutput: number; }; estimateTokens(text: string): number; estimateTotalUsage(tokens: TokenUsage): number; private getOrCreateSession; recordUsage(sessionId: string, tokens: TokenUsage, modelInfo?: ModelInfo): Promise; isOverflow(sessionId: string, modelInfo?: ModelInfo): Promise; getStats(sessionId: string, modelInfo?: ModelInfo): Promise; prune(messages: (DirectMessage | GroupMessage)[], keepLastTurns?: number): CompactionResult; private isUserMessage; getCompactionSummary(sessionId: string): Promise; saveToMemory(session: SessionContextRecord): Promise; loadFromMemory(sessionId: string): Promise; saveCompactionResult(sessionId: string, result: CompactionResult): Promise; resetOverflowWarning(sessionId: string): Promise; clearSession(sessionId?: string): void; }