import type { Model } from "@gajae-code/ai/core"; import { type AutoroutingEffective, type AutoroutingTier } from "./autorouting-contract"; export type TierSelectorNormalization = { pinned: string; } | { rejected: "selector_not_provider_qualified"; } | { unmatched: true; }; export type RoutingOutcome = { kind: "disabled"; } | { kind: "routed"; tier: AutoroutingTier; requestedTier?: AutoroutingTier; defaultTierApplied?: true; pinnedSelector: string; } | { kind: "manual-fallback"; tier: AutoroutingTier; requestedTier?: AutoroutingTier; defaultTierApplied?: true; attemptedSelectorCount: number; reason: "tier_unmatched" | "tier_missing_in_map"; }; /** * Pin one configured selector against exactly the supplied ordered snapshot. * No settings, role aliases, usage ordering, or fuzzy matching participate. */ export declare function normalizeTierSelector(selector: string, snapshot: readonly Model[]): TierSelectorNormalization; export declare function resolveTaskRouting(input: { effectiveAutorouting: AutoroutingEffective; requestedTier?: AutoroutingTier; availableModels?: readonly Model[]; }): RoutingOutcome;