import { C as CompressOptions, a as CompressResult } from '../types-BTrX7__W.js'; /** * Minimal structural type for Vercel AI SDK language models. * Compatible with both LanguageModelV1 (@ai-sdk/provider <=1.x) * and LanguageModelV3 (@ai-sdk/provider >=2.x). */ interface LanguageModel { readonly specificationVersion: string; readonly provider: string; readonly modelId: string; doGenerate: (...args: any[]) => any; doStream: (...args: any[]) => any; [key: string]: any; } type VercelMessage = any; /** * Vercel AI SDK LanguageModelV3Middleware that compresses messages * before they reach the LLM. * * @example * ```typescript * import { headroomMiddleware } from 'headroom-ai/vercel-ai'; * import { wrapLanguageModel } from 'ai'; * import { openai } from '@ai-sdk/openai'; * * const model = wrapLanguageModel({ * model: openai('gpt-4o'), * middleware: headroomMiddleware(), * }); * ``` */ declare function headroomMiddleware(options?: CompressOptions): { transformParams: ({ params, }: { params: any; model: any; type: string; }) => Promise; }; /** * Standalone: compress Vercel AI SDK ModelMessage[] directly. * Returns compressed messages in Vercel format + compression stats. */ declare function compressVercelMessages(messages: VercelMessage[], options?: CompressOptions): Promise; /** * Wrap a Vercel AI SDK language model with Headroom compression. * Convenience wrapper around `wrapLanguageModel` + `headroomMiddleware`. * * @example * ```typescript * import { withHeadroom } from 'headroom-ai/vercel-ai'; * import { openai } from '@ai-sdk/openai'; * import { generateText } from 'ai'; * * const model = withHeadroom(openai('gpt-4o')); * const { text } = await generateText({ model, messages }); * ``` */ declare function withHeadroom(model: T, options?: CompressOptions): T; export { compressVercelMessages, headroomMiddleware, withHeadroom };