import type { OperationLedger } from "../../llm/operation-ledger.js"; import type { ChatMessage, CompletionRequest, CompletionResult, ProviderId, SuccessfulRequestSnapshot } from "../../types.js"; export declare class CompactionOverLimitError extends Error { readonly requestTokens: number; readonly effectiveSafeTokens: number | undefined; constructor(message: string, requestTokens: number, effectiveSafeTokens: number | undefined); } export declare function isCompactionOverLimitError(error: unknown): error is CompactionOverLimitError; export interface CompactionSummaryExecution { readonly provider: ProviderId | undefined; readonly model: string | undefined; readonly systemContent: string; readonly prompt: string; readonly maxTokens: number; readonly signal?: AbortSignal | undefined; readonly sourceMessages?: readonly ChatMessage[] | undefined; readonly baseRequest?: SuccessfulRequestSnapshot | undefined; readonly history?: readonly ChatMessage[] | undefined; readonly contextLimitTokens?: number | undefined; readonly tools?: CompletionRequest["tools"] | undefined; readonly allowModelFallback?: boolean | undefined; readonly stream: boolean; readonly retryOnServerError?: boolean | undefined; readonly retryOnTruncation?: boolean | undefined; readonly retryOnRequestShapeRejection?: boolean | undefined; readonly retryDelayMs?: number | undefined; readonly qualityRetry?: boolean | undefined; readonly operation?: OperationLedger | undefined; readonly onToken?: ((text: string, replace?: boolean) => void) | undefined; readonly onUsage?: ((completion: CompletionResult) => void) | undefined; } export declare function salvageTruncatedSummary(summary: string): string | undefined; export declare function comparableMessage(message: ChatMessage): string; export declare function missingHistoryTail(requestMessages: readonly ChatMessage[], history: readonly ChatMessage[], textOnly?: boolean): ChatMessage[]; export declare function buildCompactionReplayMessages(baseRequest: SuccessfulRequestSnapshot, history: readonly ChatMessage[], userPrompt: string): ChatMessage[]; export declare function executeCompactionSummary(execution: CompactionSummaryExecution): Promise;