import type { PreferOpenRouterInput, ProfileCatalogLane, ResolveAIProfileOptions } from "./types.js"; export type InvokeModelRouting = "openrouter" | "direct"; export type NormalizeInvokeModelInput = { /** Alias, concrete OpenRouter slug, gateway wire, or bare vendor model id. */ model: string; provider?: string; routing?: InvokeModelRouting | "auto"; catalogLane?: ProfileCatalogLane; preferOpenRouter?: PreferOpenRouterInput; /** When true, profile/choice keys are not rejected (rare; prefer resolveAndNormalizeInvokeModel). */ allowAlias?: boolean; }; export type NormalizedInvokeModel = { provider: string; /** Bare vendor/model for OpenRouter, or vendor-local model id for direct — never `openrouter/` prefixed. */ model: string; routing: InvokeModelRouting; /** UI / studio slug: `openrouter/vendor/model` when routed via OpenRouter. */ displaySlug?: string; }; export type NormalizeInvokeModelOptions = Pick; /** * Idempotent normalizer for HTTP / gateway invoke wire shape. * * - Display slug (`openrouter/vendor/model`) → `{ provider: "openrouter", model: "vendor/model" }` * - Invoke tuple `{ provider: "openrouter", model: "vendor/model" }` → unchanged * - Profile/choice aliases → `INVOKE_MODEL_ALIAS_AT_GATEWAY` (resolve first, or use * {@link resolveAndNormalizeInvokeModel}) */ export declare function normalizeInvokeModel(input: string | NormalizeInvokeModelInput, options?: NormalizeInvokeModelOptions): NormalizedInvokeModel; export type ResolveAndNormalizeInvokeModelOptions = ResolveAIProfileOptions & Pick; /** * `resolveAIProfile` (async) → {@link normalizeInvokeModel} for profile/choice aliases. */ export declare function resolveAndNormalizeInvokeModel(alias: string, options: ResolveAndNormalizeInvokeModelOptions): Promise; /** * Bundled-registry variant of {@link resolveAndNormalizeInvokeModel} (sync, no network). */ export declare function resolveAndNormalizeBundledInvokeModel(alias: string, options: ResolveAndNormalizeInvokeModelOptions): NormalizedInvokeModel; //# sourceMappingURL=normalizeInvokeModel.d.ts.map