import { type CompactionSettings, type SummarizeFn } from '../../context/compaction.js'; import type { ContextPruningSettings, PruneResult } from '../../context/pruning.js'; import type { LLMProvider } from './llm-provider.js'; import type { Message } from '../session/session-jsonl.js'; export type SummarizationStrategyKind = 'client_llm' | 'provider_server_compaction'; export type SummarizationStrategyInput = { messages: Message[]; contextWindowTokens: number; pruningSettings?: Partial; compactionSettings?: Partial; systemPrompt?: string; charsPerTokenUnit?: number; maxTokens?: number; skipLlmCompaction?: boolean; forceCompaction?: boolean; abortSignal?: AbortSignal; }; export type ProviderServerCompactionPayload = { encryptedContent?: string; input?: unknown; raw?: unknown; }; export type SummarizationStrategyResult = { kind: 'none'; source: SummarizationStrategyKind; pruneResult?: PruneResult; } | { kind: 'client_summary'; source: 'client_llm'; summary: string; summaryMessage: Message; pruneResult: PruneResult; } | { kind: 'provider_compaction'; source: 'provider_server_compaction'; compaction: ProviderServerCompactionPayload; pruneResult?: PruneResult; }; export interface SummarizationStrategy { readonly id: string; readonly kind: SummarizationStrategyKind; compact(input: SummarizationStrategyInput): Promise; } export declare function createSummarizeFnFromLlmProvider(params: { provider: Pick; model: string; }): SummarizeFn; export declare function createClientLlmSummarizationStrategy(params: { summarize: SummarizeFn; id?: string; }): SummarizationStrategy; export type ProviderServerCompactionFn = (input: SummarizationStrategyInput) => Promise; export declare function createProviderServerCompactionStrategy(params: { compact: ProviderServerCompactionFn; id?: string; }): SummarizationStrategy; //# sourceMappingURL=summarization-strategy.d.ts.map