import { type CoreMessage } from 'ai';
import type { YagrContextCompactionEvent, YagrLanguageModelConfig, YagrRunJournalEntry } from '../types.js';
export interface ContextBudget {
    contextWindowTokens: number;
    reservedOutputTokens: number;
    thresholdPercent?: number;
    charsPerToken?: number;
    preserveRecentMessages?: number;
}
export interface CompactConversationInput {
    messages: CoreMessage[];
    prompt: string;
    journal: YagrRunJournalEntry[];
    systemPrompt: string;
    budget: ContextBudget;
    abortSignal?: AbortSignal;
    llmConfig?: YagrLanguageModelConfig;
    condense?: (prompt: string) => Promise<string>;
}
export interface CompactConversationResult {
    messages: CoreMessage[];
    event?: YagrContextCompactionEvent;
}
export declare function compactConversationContext(input: CompactConversationInput): Promise<CompactConversationResult>;
//# sourceMappingURL=context-compaction.d.ts.map