import { type Message } from '../core/session/session-jsonl.js'; import { type ContextPruningSettings, type PruneResult } from './pruning.js'; import type { RemoteCompactProvider } from './remote-compaction.js'; export declare const BASE_CHUNK_RATIO = 0.4; export declare const MIN_CHUNK_RATIO = 0.15; export declare const SAFETY_MARGIN = 1.2; export interface CompactionSettings { enabled: boolean; reserveTokens: number; keepRecentTokens: number; restoreFileContents: boolean; } export declare const DEFAULT_COMPACTION_SETTINGS: CompactionSettings; export declare const POST_COMPACT_MAX_FILES_TO_RESTORE = 5; export declare const POST_COMPACT_TOKEN_BUDGET = 50000; export declare const POST_COMPACT_MAX_TOKENS_PER_FILE = 5000; export declare const DEFAULT_SUMMARY_MAX_TOKENS = 900; export type SummarizeFn = (params: { system: string; userPrompt: string; maxTokens: number; abortSignal?: AbortSignal; }) => Promise; export interface CompactionStrategy { readonly name: string; summarize(params: StrategyParams): Promise; readonly fallback?: CompactionStrategy; } export interface StrategyParams { summarize?: any; remoteCompactProvider?: RemoteCompactProvider; droppedMessages: Message[]; contextWindowTokens: number; maxTokens?: number; reserveTokens: number; customInstructions?: string; systemPrompt?: string; abortSignal?: AbortSignal; } export declare function computeAdaptiveChunkRatio(messages: Message[], contextWindow: number): number; export declare function splitMessagesByTokenShare(messages: Message[], parts?: number): Message[][]; export declare function chunkMessagesByMaxTokens(messages: Message[], maxTokens: number): Message[][]; export declare function summarizeInStages(params: { messages: Message[]; summarize: SummarizeFn; maxTokens: number; maxChunkTokens: number; contextWindow: number; customInstructions?: string; previousSummary?: string; parts?: number; minMessagesForSplit?: number; abortSignal?: AbortSignal; }): Promise; export declare function shouldTriggerCompaction(params: { messages: Message[]; contextWindowTokens: number; settings?: Partial; systemPrompt?: string; charsPerTokenUnit?: number; includeThinking?: boolean; }): boolean; export declare function shouldProactiveCompact(params: { messages: Message[]; contextWindowTokens: number; settings?: Partial; includeThinking?: boolean; }): boolean; export declare function buildCompactionSummary(params: { summarize: SummarizeFn; messages: Message[]; contextWindowTokens: number; maxTokens?: number; reserveTokens?: number; customInstructions?: string; abortSignal?: AbortSignal; }): Promise; export declare function compactHistoryIfNeeded(params: { summarize: SummarizeFn; messages: Message[]; contextWindowTokens: number; pruningSettings?: Partial; compactionSettings?: Partial; systemPrompt?: string; charsPerTokenUnit?: number; maxTokens?: number; skipLlmCompaction?: boolean; forceCompaction?: boolean; remoteCompactProvider?: RemoteCompactProvider; customInstructions?: string; includeThinking?: boolean; abortSignal?: AbortSignal; workspaceDir?: string; }): Promise<{ summary?: string; summaryMessage?: Message; pruneResult: PruneResult; degraded?: boolean; }>; export declare const DEFAULT_CONTEXT_WINDOW_TOKENS = 1000000; export declare const DEFAULT_HISTORY_SHARE = 0.5; export declare const DEFAULT_CONTEXT_WINDOW_CHARS: number; //# sourceMappingURL=compaction.d.ts.map