import type { ChatMessage, CompletionResult, ProviderId, SuccessfulRequestSnapshot, ToolDefinition } from "../../types.js"; import type { OperationLedger } from "../../llm/operation-ledger.js"; import type { CompactionSummaryStage } from "../context-manager.js"; import { executeCompactionSummary } from "../compaction-executor.js"; export interface CompactionExecutionState { activeId?: string | undefined; activeLedger?: OperationLedger | undefined; replaySnapshot?: SuccessfulRequestSnapshot | undefined; } export interface CompactionSummarizerPorts { readonly provider: ProviderId; readonly model: string; readonly signal?: AbortSignal | undefined; readonly history: ChatMessage[]; readonly state: CompactionExecutionState; readonly currentContextLimitTokens: () => number | undefined; readonly toolsForSourceMessages: () => ToolDefinition[] | undefined; readonly writeDelta: (id: string, text: string, replace?: boolean) => void; readonly onUsage?: ((completion: CompletionResult) => void) | undefined; readonly execute?: typeof executeCompactionSummary | undefined; } export declare const createCompactionSummarizer: (ports: CompactionSummarizerPorts) => (summaryPrompt: string, stage?: CompactionSummaryStage) => Promise;