import type { ModelMessage } from 'ai'; export type MessageTransformer = (messages: ModelMessage[], context: { turnCount: number; totalTokens: number; sessionId: string; }) => Promise | ModelMessage[]; export interface ContextManagerOptions { maxTokens?: number; maxMessages?: number; keepSystemPrompt?: boolean; transformer?: MessageTransformer; } export interface ContextManagerContext { turnCount: number; totalTokens: number; sessionId: string; /** When provided, overrides the configured maxTokens for this turn. */ maxTokensOverride?: number; } export interface ContextManager { beforeTurn(messages: ModelMessage[], context: ContextManagerContext): Promise | ModelMessage[]; } export declare function createContextManager(options?: ContextManagerOptions): ContextManager; export declare function createSummarizingContextManager(summarizeFn: (messages: ModelMessage[]) => Promise | string, options?: { summarizeAfterNTurns?: number; maxTokensBeforeSummary?: number; summaryRole?: 'system' | 'user' | 'assistant'; }): ContextManager;