import type { CompactionMessage, Message } from "../types.js"; import type { Context, Model, Provider, ServiceTier } from "@slopus/rig-execution"; import type { Context as RuntimeContext } from "@steve.kite/stdlib"; export interface CompactConversationResult { compacted: boolean; compactedMessageCount: number; compactionMessage?: CompactionMessage; contextMessages: readonly Message[]; estimatedTokensAfter: number; estimatedTokensBefore: number; retainedMessageCount: number; } export declare function compactConversation(ctx: RuntimeContext, options: { provider: Provider; model: Model; messages: readonly Message[]; createProviderContext: (messages: readonly Message[]) => Promise; idFactory: () => string; now: () => number; reportedTokens?: number; force: boolean; onCompactionStart?: (event: { compactionId: string; estimatedTokensBefore: number; }) => void | Promise; signal?: AbortSignal; serviceTier?: ServiceTier; startDate?: string; thinking?: string; }): Promise;