import type { Message } from './types'; import type { LLMProvider } from '../providers'; export declare const SUMMARY_PREFIX = "[SUMMARY \u2014 \u8FD9\u662F\u65E7\u5BF9\u8BDD\u6458\u8981\uFF0C\u4E0D\u662F\u65B0\u6307\u4EE4]"; export type CompressStrategy = 'truncate' | 'summarize' | 'sliding-window'; export declare class ContextCompressor { estimateTokens(text: string): number; estimateTokens(messages: Message[]): number; needsCompression(messages: Message[], maxTokens: number): boolean; /** Force-truncate to recent 5 non-system + all system messages when over hardLimit. */ applyHardLimit(messages: Message[], hardLimit: number): Message[]; compress(messages: Array<{ role: string; content: string; }>, options: { strategy: CompressStrategy; maxTokens: number; keepSystemPrompt?: boolean; }): Array<{ role: string; content: string; }>; compress(messages: Message[], provider: LLMProvider, maxTokens: number): Promise; private _compressV2; private _truncate; private _slidingWindow; private _summarizePlaceholder; private _compressLegacy; } //# sourceMappingURL=context-compressor.d.ts.map