import { type CatalogResilienceSource } from "./catalogResilience.js"; import type { AIProfileWarning, AIProvider, PreferOpenRouterInput, ProfileCatalogLane, RegistrySourceMode, ResolvedCatalogModel } from "./types.js"; import type { CatalogMatchConfidence } from "./resolveBundledCatalogModel.js"; export interface RequireCatalogModelOptions { /** * When true, only the package-shipped catalog is consulted (no network). * When false (default dev), uses `source` with bundled-row fallbacks on miss. */ bundledOnly?: boolean; source?: RegistrySourceMode; refresh?: boolean; preferOpenRouter?: PreferOpenRouterInput; catalogLane?: ProfileCatalogLane; /** When true, attach full {@link ResolvedCatalogModel} on the result. */ includeDetails?: boolean; includeCatalogEntry?: boolean; /** * When true, resolve `profile/choice` inputs via {@link resolveAIProfile} before * catalog validation. Requires `catalogLane`. */ resolveProfileKeys?: boolean; } export interface RequireCatalogModelResult { found: boolean; provider?: AIProvider; modelId?: string; routing?: "openrouter" | "direct"; matchConfidence?: CatalogMatchConfidence | "parsed"; resilienceSource?: CatalogResilienceSource; profileChoice?: { profile: string; choice: string; }; warnings?: AIProfileWarning[]; catalogModel?: ResolvedCatalogModel; } /** * Resilient catalog presence check for concrete model slugs. * * Safe to call after profile resolution when clients re-validate the routed slug. * Pass `resolveProfileKeys: true` with `catalogLane` to accept `profile/choice` inputs. * Falls back to bundled catalog rows, profile registry, and models-registry.json. */ export declare function requireCatalogModel(input: string, options?: RequireCatalogModelOptions): Promise; /** * Sync bundled variant of {@link requireCatalogModel} (no network). */ export declare function requireBundledCatalogModel(input: string, options?: Pick): RequireCatalogModelResult; //# sourceMappingURL=requireCatalogModel.d.ts.map