import type { MiniAgentEvent } from '../subagent/agent-events.js'; import { type CompactHookRegistry } from './compact-hooks.js'; import type { Message } from '../session/session-jsonl.js'; import type { AgentLoopLlmUsage } from './agent-loop-types.js'; export interface AgentLoopPrepareCompaction { (params: { messages: Message[]; sessionKey: string; runId: string; forceCompaction?: boolean; includeThinking?: boolean; abortSignal?: AbortSignal; }): Promise<{ summary?: string; summaryMessage?: Message; messages?: Message[]; droppedMessages?: number; checkpointOutline?: string[]; usage?: AgentLoopLlmUsage[]; }>; } export interface AgentLoopCompactionOutcome { attempted: boolean; succeeded: boolean; retrySameTurn: boolean; compactionSummary?: Message; } export declare function runProactiveWindowCompaction(params: { sessionKey: string; runId: string; currentMessages: Message[]; rawTotalChars: number; promptUnitsForWindow: number; prepareCompaction: AgentLoopPrepareCompaction; compactHooks?: CompactHookRegistry; persistCurrentMessages: (messages?: Message[]) => Promise; push: (event: MiniAgentEvent) => void; onWarn?: (message: string, meta: Record) => void; abortSignal?: AbortSignal; includeThinking?: boolean; }): Promise; export declare function runPromptPruneCompaction(params: { sessionKey: string; runId: string; currentMessages: Message[]; droppedMessagesForStats: Message[]; prepareCompaction: AgentLoopPrepareCompaction; compactHooks?: CompactHookRegistry; persistCurrentMessages: (messages?: Message[]) => Promise; push: (event: MiniAgentEvent) => void; onWarn?: (message: string, meta: Record) => void; abortSignal?: AbortSignal; includeThinking?: boolean; }): Promise; //# sourceMappingURL=agent-loop-compaction.d.ts.map