import { type ChatUiMessage, type ProviderModelMessage } from "./types.js"; /** Tunable limits used while preparing chat history for model context. */ export type MessagePrepLimits = { charsPerToken: number; historicalToolOutputMaskChars: number; historicalToolInputMaskChars: number; retainedMetadataStringMaxChars: number; retainedMetadataArrayMaxItems: number; retainedMetadataObjectMaxEntries: number; }; /** Default limits for chat history preparation. */ export declare const DEFAULT_MESSAGE_PREP_LIMITS: MessagePrepLimits; /** Field selector retained in a historical tool-input summary. */ export type HistoricalToolInputRetainedField = string | { inputName: string; outputName?: string; } | { inputNames: readonly string[]; outputName: string; }; /** Policy for compacting a completed historical tool-call input. */ export type HistoricalToolInputRetentionPolicy = { compactCompletedInput: boolean; compactAfterChars?: number; retainInputFields?: readonly HistoricalToolInputRetainedField[]; }; /** Resolves the retention policy for a completed historical tool input. */ export type HistoricalToolInputRetentionPolicyResolver = (toolName: string, input: Record) => HistoricalToolInputRetentionPolicy | null | undefined; /** Diagnostic emitted when a completed historical tool input is compacted. */ export type HistoricalToolInputCompactionDiagnostic = { source: "provider" | "ui"; toolName: string; toolCallId: string; originalInputChars: number; retainedInputChars: number; originalInputTokens: number; retainedInputTokens: number; originalInputHash: string; reason: "completed_historical_tool_input"; }; /** Options for historical tool-input compaction. */ export type HistoricalToolInputRetentionOptions = { resolvePolicy?: HistoricalToolInputRetentionPolicyResolver; diagnostics?: HistoricalToolInputCompactionDiagnostic[]; limits?: Partial; }; /** Options accepted by prepare provider model messages from UI messages. */ export interface PrepareProviderModelMessagesFromUiMessagesOptions { providerOwnedToolNames?: readonly string[]; historicalToolInputRetention?: HistoricalToolInputRetentionOptions; } /** Estimate tokens. */ export declare function estimateTokens(value: unknown): number; /** Approximate token categories for context diagnostics. */ export type MessageTokenBreakdown = { totalTokens: number; systemTextTokens: number; userContentTokens: number; assistantContentTokens: number; reasoningTokens: number; toolCallInputTokens: number; toolResultOutputTokens: number; fileTokens: number; unknownTokens: number; }; /** Estimate token categories for provider, UI, or runtime messages. */ export declare function estimateMessageTokenBreakdown(messages: readonly unknown[]): MessageTokenBreakdown; /** Compress turn. */ export declare function compressTurn(messages: ProviderModelMessage[], startIdx: number, endIdx: number): ProviderModelMessage[]; /** Enforce token budget with turn compression. */ export declare function enforceTokenBudgetWithTurnCompression(messages: ProviderModelMessage[], budget: number, overhead: number): ProviderModelMessage[]; /** Check whether the model supports the file media type. */ export declare function isModelSupportedFileMediaType(mediaType: string): boolean; /** Normalizes message file part media types. */ export declare function normalizeMessageFilePartMediaTypes(messages: ChatUiMessage[]): ChatUiMessage[]; /** Rewrite unsupported file parts as annotations. */ export declare function rewriteUnsupportedFilePartsAsAnnotations(messages: ChatUiMessage[]): ChatUiMessage[]; /** Strip pending tool parts. */ export declare function stripPendingToolParts(messages: ChatUiMessage[]): ChatUiMessage[]; /** Sanitize provider model messages. */ export declare function sanitizeProviderModelMessages(messages: ProviderModelMessage[]): ProviderModelMessage[]; /** Prepare provider model messages from UI messages. */ export declare function prepareProviderModelMessagesFromUiMessages(messages: ChatUiMessage[], options?: PrepareProviderModelMessagesFromUiMessagesOptions): ProviderModelMessage[]; /** Mask old tool outputs. */ export declare function maskOldToolOutputs(messages: ProviderModelMessage[]): ProviderModelMessage[]; /** Compact large historical tool-call inputs after matching results are available. */ export declare function compactOldToolInputs(messages: ProviderModelMessage[], options?: HistoricalToolInputRetentionOptions): ProviderModelMessage[]; /** Compact large historical UI-message tool inputs after matching results are available. */ export declare function compactHistoricalUiMessageToolInputs(messages: ChatUiMessage[], options?: HistoricalToolInputRetentionOptions): ChatUiMessage[]; /** Repair tool pairs. */ export declare function repairToolPairs(messages: ProviderModelMessage[]): ProviderModelMessage[]; /** Estimate overhead. */ export declare function estimateOverhead(instructions: unknown, toolCount: number): number; /** Ensure tool call inputs helper. */ export declare function ensureToolCallInputs(messages: ProviderModelMessage[]): ProviderModelMessage[]; /** Compact for step. */ export declare function compactForStep(messages: ProviderModelMessage[], overhead?: number, options?: { historicalToolInputRetention?: HistoricalToolInputRetentionOptions; }): ProviderModelMessage[]; /** Dedupe tool history. */ export declare function dedupeToolHistory(messages: ProviderModelMessage[]): ProviderModelMessage[]; /** Enforce token budget. */ export declare function enforceTokenBudget(messages: ProviderModelMessage[], budget?: number, overhead?: number): ProviderModelMessage[]; //# sourceMappingURL=message-prep.d.ts.map