import type { CompletionRequest } from '../types/messages.js'; import type { ContextSummarizer, ContextWindowConfig, ContextWindowResult } from '../types/context-window.js'; /** What context-window optimization can call on. */ export interface ContextWindowRuntime { /** Summarizes trimmed messages, for the `summarize` strategy. */ summarizer?: ContextSummarizer; } /** * Fits a conversation into a context window by keeping recent messages and trimming or summarizing * earlier ones. */ export declare class ContextWindowManager { private config; private tokenizer; constructor(config?: ContextWindowConfig); /** Optimizes a request, summarizing trimmed messages when configured to. */ optimize(request: CompletionRequest, runtime?: ContextWindowRuntime): Promise>; /** What optimization would do, without calling a summarizer. */ preview(request: CompletionRequest): ContextWindowResult; private optimizeInternal; private optimizeInternalSync; private resultFromSelection; private selectMessages; private selectByCount; private selectByTokens; private createSummary; private createLocalSummary; private summaryInput; private summaryMessage; private splitMessages; private effectiveStrategy; private strategy; private shouldSummarize; private summaryEnabled; private summaryMode; private summaryConfig; private identity; private serializeMessages; private messageText; private partText; } export type { ContextSummaryConfig, ContextSummaryInput, ContextSummaryMode, ContextSummarizer, ContextWindowConfig, ContextWindowResult, ContextWindowStrategy, ContextWindowUsage, } from '../types/context-window.js';