import { ChatMessage } from './types';
export interface CompressionResult {
    messages: ChatMessage[];
    summary: string;
    removedCount: number;
    savings: number;
}
export declare class ContextCompressor {
    private _contextLength;
    private _protectFirstN;
    private _protectLastN;
    private _compressionCount;
    private _previousSummary;
    private _ineffectiveCount;
    private _lastSavingsPct;
    constructor(contextLength: number, protectFirstN?: number, protectLastN?: number);
    shouldCompress(messages: ChatMessage[]): boolean;
    compress(messages: ChatMessage[], llmCall?: (messages: ChatMessage[]) => Promise<string>): Promise<CompressionResult>;
    private _pruneToolOutputs;
    private _detectBoundaries;
    private _alignBoundary;
    private _generateSummary;
    private _serializeForSummary;
    private _buildFallbackSummary;
    private _assemble;
    private _sanitizeToolPairs;
    reset(): void;
}
//# sourceMappingURL=context-compressor.d.ts.map