/**
 * ContextCompactor
 *
 * Orchestrates multi-stage context reduction:
 *
 * Stage 1: Tool Output Pruning (cheapest -- no LLM call)
 * Stage 2: File Read Deduplication (cheap -- no LLM call)
 * Stage 3: LLM Summarization (expensive -- requires LLM call)
 * Stage 4: Sliding Window Truncation (fallback -- no LLM call)
 */
import type { ChatMessage, ConversationMemoryConfig } from "../types/conversation.js";
import type { CompactionResult, CompactionConfig } from "../types/contextTypes.js";
export type { CompactionConfig, CompactionResult, CompactionStage, } from "../types/contextTypes.js";
export declare class ContextCompactor {
    private config;
    constructor(config?: CompactionConfig);
    /**
     * Run the multi-stage compaction pipeline until messages fit within budget.
     */
    compact(messages: ChatMessage[], targetTokens: number, memoryConfig?: Partial<ConversationMemoryConfig>, requestId?: string): Promise<CompactionResult>;
}
