import type { ModelsCatalogJson } from "./types.js"; export type OpenRouterApiModel = { id: string; canonical_slug?: string; name?: string; created?: number; description?: string; context_length?: number; architecture?: { modality?: string; input_modalities?: string[]; output_modalities?: string[]; }; pricing?: Record; top_provider?: { max_completion_tokens?: number; }; supported_parameters?: string[]; knowledge_cutoff?: string | null; expiration_date?: string | null; }; export type OpenRouterApiModelsResponse = { data: OpenRouterApiModel[]; }; export type TextOnlyCatalogOptions = { /** Include `:free` tier OpenRouter SKUs (default false). */ includeFree?: boolean; }; /** True when the model is a text-chat SKU (text output only; not image/audio/video generation). * Multimodal *input* (image/audio/video/file) is allowed — required for Gemini and similar. */ export declare function isTextOnlyOpenRouterModel(model: OpenRouterApiModel): boolean; export declare function filterTextOnlyOpenRouterModels(models: OpenRouterApiModel[], options?: TextOnlyCatalogOptions): OpenRouterApiModel[]; /** Build the legacy OpenRouter-only catalog document (fed into {@link normalizeModelsCatalog}). */ export declare function buildLegacyCatalogFromOpenRouterApi(response: OpenRouterApiModelsResponse, options?: TextOnlyCatalogOptions): Record; /** Fetch response → unified {@link ModelsCatalogJson} (text-only SKUs). */ export declare function buildTextModelsCatalogFromOpenRouterApi(response: OpenRouterApiModelsResponse, options?: TextOnlyCatalogOptions): ModelsCatalogJson; /** @deprecated Prefer {@link buildTextModelsCatalogFromOpenRouterApi}. */ export declare function buildModelsCatalogFromOpenRouterApi(response: OpenRouterApiModelsResponse): ModelsCatalogJson; //# sourceMappingURL=buildCatalogFromOpenRouterApi.d.ts.map