import type { Provider, Message } from '../providers/index.js'; export interface ContextStats { totalTokens: number; messageCount: number; compactedCount: number; estimatedPct: number; } export interface ContextBudgetOptions { contextLimit?: number; inputLimit?: number; outputReservation?: number; scalableBuffer?: number; } export interface ContextBudgetDiagnostics { contextLimit: number; inputLimit?: number; outputReservation: number; scalableBuffer: number; reservedTokens: number; effectiveInputLimit: number; autoCompactThreshold: number; } export declare class ContextManager { private provider; private model; private compactCount; private contextLimit; private inputLimit?; private outputReservation; private configuredScalableBuffer?; constructor(provider: Provider, model: string, contextLimitOrOptions?: number | ContextBudgetOptions, options?: ContextBudgetOptions); private validPositive; setContextLimit(limit: number): void; updateBudget(options: ContextBudgetOptions): void; getContextLimit(): number; getBudgetDiagnostics(): ContextBudgetDiagnostics; estimateTokens(messages: Message[]): number; getStats(messages: Message[]): ContextStats; shouldCompact(messages: Message[]): boolean; private safeKeepFrom; private tailKeepFromByBudget; compact(messages: Message[]): Promise; pruneToolResults(messages: Message[]): Message[]; trimOldMessages(messages: Message[], maxTokens?: number): Message[]; optimize(messages: Message[]): Message[]; private summarize; } //# sourceMappingURL=ContextManager.d.ts.map