import type { EmbeddingModelMiddleware, LanguageModelMiddleware } from "ai"; import type { ModelId } from "../models/types"; import type { ProviderId } from "../providers/types"; type MiddlewareEntries = { language?: LanguageModelMiddleware[]; embedding?: EmbeddingModelMiddleware[]; }; type ModelMiddleware = LanguageModelMiddleware | EmbeddingModelMiddleware; declare class ModelMiddlewareMatcher { private model; private provider; private static readonly MAX_CACHE; private cache; useForModel(patterns: ModelId | readonly ModelId[], entry: MiddlewareEntries): void; useForProvider(patterns: ProviderId | readonly ProviderId[], entry: MiddlewareEntries): void; for(modelId: ModelId, providerId: ProviderId): LanguageModelMiddleware[]; forEmbedding(modelId: ModelId, providerId: ProviderId): EmbeddingModelMiddleware[]; resolve(options: { kind: "text" | "embedding"; modelId?: ModelId; providerId?: ProviderId; forward?: ModelMiddleware | (() => ModelMiddleware); debug?: ModelMiddleware; }): ModelMiddleware[]; private collect; } export declare const modelMiddlewareMatcher: ModelMiddlewareMatcher; export type { ModelMiddlewareMatcher };