import type { ProviderMessage } from '../providers/interface.js'; import type { ProviderRegistry } from '../providers/registry.js'; import type { CompactionContext } from './context-compaction.js'; import type { CompactionReceipt, CompactionStrategyChoice } from './compaction-types.js'; import type { SessionMemoryStore } from './session-memory.js'; import type { SessionLineageTracker } from './session-lineage.js'; /** * Resolve the effective compaction strategy from the `behavior.compactionStrategy` * config value and the `compaction-distiller-strategy` feature-flag state. * * The distiller only runs when BOTH the config selects it AND the flag is on, * the flag is the graduation gate, so a `distiller` config value with a dark * flag honestly resolves back to `structured` (the un-graduated default). Any * unrecognized config value also resolves to `structured`. */ export declare function resolveCompactionStrategy(configStrategy: string | undefined, distillerFlagEnabled: boolean): CompactionStrategyChoice; export interface ConversationCompactionHost { getMessageCount(): number; getMessagesForLLM(): ProviderMessage[]; replaceMessagesForLLM(newMessages: ProviderMessage[]): void; getSessionMemoryStore(): Pick | null; getSessionLineageTracker(): Pick; } export declare function compactConversation(host: ConversationCompactionHost, registry: ProviderRegistry, modelId: string, trigger?: 'auto' | 'manual', provider?: string, context?: CompactionContext): Promise; //# sourceMappingURL=conversation-compaction.d.ts.map