import type { OptimizationConfig, OptimizationReport, OptimizeInputResult } from '../../types/index.js';
import { ResponseCache } from './response-cache.js';
import { Deduplicator } from './deduplicator.js';
import { Batcher } from './batcher.js';
import { IncrementalTracker } from './incremental.js';
import { BudgetManager } from './budget.js';
import { OptimizationReporter } from './reporter.js';
/**
 * Central orchestrator for all token optimization components.
 */
export declare class TokenOptimizer {
    readonly cache: ResponseCache;
    readonly deduplicator: Deduplicator;
    readonly batcher: Batcher;
    readonly incremental: IncrementalTracker;
    readonly budget: BudgetManager;
    readonly reporter: OptimizationReporter;
    private readonly config;
    private readonly sessionId;
    constructor(sessionId: string, config?: Partial<OptimizationConfig>);
    /**
     * Optimize a tool's input before execution.
     * Returns cached result if available, or compressed input.
     */
    optimizeInput(toolName: string, input: string): OptimizeInputResult;
    /**
     * Optimize a tool's response after execution.
     */
    optimizeResponse(toolName: string, input: string, response: string): string;
    /**
     * Generate optimization report for this session.
     */
    getReport(): OptimizationReport;
    /**
     * Get human-readable report.
     */
    getFormattedReport(): string;
    /**
     * Get current configuration.
     */
    getConfig(): OptimizationConfig;
    /**
     * Reset all optimization state.
     */
    reset(): void;
}
//# sourceMappingURL=optimizer.d.ts.map