/** Minimal model view needed for resolution; satisfied by pi Model entries. */ export interface FabricModelCandidate { provider: string; id: string; name?: string; } export type FabricModelResolution = { kind: "resolved"; model: FabricModelCandidate; via?: string; } | { kind: "already-active"; model: FabricModelCandidate; } | { kind: "ambiguous"; query: string; candidates: FabricModelCandidate[]; } | { kind: "not-found"; query: string; tried?: string[]; }; /** * Normalize raw `models.aliases` config into alias name → ordered targets. * String targets degrade to one-element fallback chains. Entries whose name, * target list, or any `provider/model` target string is malformed are * dropped entirely, matching the lenient fallback style of the other config * normalizers (no partial alias survives with a silently missing target). */ export declare const normalizeModelAliases: (input: unknown) => Record; /** * Resolve a model selector against aliases and the available (authenticated) * registry. Order: alias lookup first so a configured name always wins, then * exact provider/id, exact id, then a single partial match across provider, * id, and name. Multiple partial matches stay the caller's disambiguation * problem so a fuzzy switch can never land on the wrong model. */ export declare const resolveFabricModel: (query: string, options: { aliases: Record; available: readonly FabricModelCandidate[]; current?: FabricModelCandidate; provider?: string; }) => FabricModelResolution; //# sourceMappingURL=model-resolution.d.ts.map