import { type ModelInputFallbackMatch } from "./modelInputFallback.js"; import type { AIProfilesRegistry, ModelsCatalogJson, ModelsRegistryJson } from "./types.js"; export type CatalogResilienceSource = "primary-catalog" | "bundled-catalog-fallback" | "registry-fallback" | "profile-registry-fallback" | "parsed-invocation"; export interface ResilientCatalogMatch extends ModelInputFallbackMatch { resilienceSource: CatalogResilienceSource; profileChoice?: { profile: string; choice: string; }; } /** Merge bundled + profile supplement rows missing from a primary (e.g. legacy remote) catalog. */ export declare function mergeCatalogWithBundledFallback(primary: ModelsCatalogJson): ModelsCatalogJson; /** * Resolve a concrete model slug with layered fallbacks: * primary catalog → bundled catalog merge → profile registry → models registry → low/parsed. */ export declare function resolveModelFromCatalogResilient(input: string, primaryCatalog: ModelsCatalogJson, options?: { registry?: AIProfilesRegistry; modelsRegistry?: ModelsRegistryJson; /** When true, skip merging bundled rows (primary is already complete). */ skipBundledMerge?: boolean; }): ResilientCatalogMatch | undefined; /** Whether a resilient match is safe for strict catalog resolution (not a fuzzy guess). */ export declare function isTrustedCatalogMatch(match: ResilientCatalogMatch): boolean; //# sourceMappingURL=catalogResilience.d.ts.map