import type { Message } from 'ollama';
import type { IChatClient } from '../core/chatClient';
export interface CompactionConfig {
    maxTokens: number;
    budgetPerToolResult: number;
    snipThreshold: number;
    autoCompactThreshold: number;
    minSummaryQuality?: number;
}
export declare const DEFAULT_COMPACTION_CONFIG: CompactionConfig;
export interface CompactionValidation {
    score: number;
    passed: boolean;
    missingTerms: string[];
}
export interface CompactionResult {
    messages: Message[];
    strategy: string;
    tokensFreed: number;
    summary?: string;
    compactedCount?: number;
    validation?: CompactionValidation;
}
export declare function applyBudgetReduction(messages: Message[], maxCharsPerResult: number): CompactionResult;
export declare function applySnip(messages: Message[], keepCount: number): CompactionResult;
export declare function applyAutoCompact(messages: Message[], client: IChatClient, minSummaryQuality?: number): Promise<CompactionResult>;
export declare function compactIfNeeded(messages: Message[], config: CompactionConfig, client: IChatClient): Promise<CompactionResult>;
export declare function validateCompactionSummary(sourceMessages: Message[], summary: string, minScore: number): CompactionValidation;
//# sourceMappingURL=compaction.d.ts.map