import type { AIProfileChoice, AIProfileDefinition, CostCapOption, ModalityContract, ModelModality, ModelsCatalogJson, ModelCapabilityFilter, ModelFocusPreset, ProfileModalityMismatch, ProfileRequiredCapabilities } from "./types.js"; import { type PickProfileChoiceOptions, type PickProfileChoiceResult } from "./vendorPolicy.js"; export declare const TEXT_MODALITY_CONTRACT: ModalityContract; export declare const VISION_MODALITY_CONTRACT: ModalityContract; export declare function normalizeModalityList(values: readonly string[] | undefined, fallback: ModelModality[]): ModelModality[]; export declare function normalizeModalityContract(contract: Partial<{ input?: readonly string[]; output?: readonly string[]; }> | undefined, fallback?: ModalityContract): ModalityContract; export declare function modalityContractFromCapabilities(capabilities: ProfileRequiredCapabilities | undefined): ModalityContract | undefined; export declare function defaultModalityContractForProfile(profileKey: string, profile: AIProfileDefinition): ModalityContract; export declare function resolveRequiredModalities(profileKey: string, profile: AIProfileDefinition, overrides?: Pick): ModalityContract; export declare function getChoiceModalities(choice: AIProfileChoice, catalog?: ModelsCatalogJson): ModalityContract; export declare function modalityContractSatisfied(required: ModalityContract, actual: ModalityContract): boolean; export declare function choiceMatchesModalityContract(choice: AIProfileChoice, required: ModalityContract, catalog?: ModelsCatalogJson): boolean; export declare function filterProfileChoicesByModalities(profile: AIProfileDefinition, required: ModalityContract, catalog?: ModelsCatalogJson): Record; export declare function filterFallbackOrder(order: string[] | undefined, allowedChoiceKeys: Set): string[]; export declare function listProfileModalityMismatches(profileKey: string, profile: AIProfileDefinition, catalog?: ModelsCatalogJson): ProfileModalityMismatch[]; export interface PickProfileChoiceWithConstraintsOptions extends PickProfileChoiceOptions { inputModalities?: ModelModality[]; outputModalities?: ModelModality[]; costCapPer1M?: CostCapOption; capabilityFilter?: ModelCapabilityFilter; focus?: ModelFocusPreset; catalog?: ModelsCatalogJson; } /** @deprecated Use {@link pickProfileChoiceWithConstraints}. */ export type PickProfileChoiceWithModalitiesOptions = PickProfileChoiceWithConstraintsOptions; export declare function filterProfileChoicesByCapabilities(profile: AIProfileDefinition, filter: ModelCapabilityFilter, catalog?: ModelsCatalogJson, focus?: ModelFocusPreset): Record; /** * Pick a profile choice honoring vendor, modality, and cost-cap constraints. */ export declare function pickProfileChoiceWithConstraints(profileKey: string, profile: AIProfileDefinition, options?: PickProfileChoiceWithConstraintsOptions): PickProfileChoiceResult; /** Pick a profile choice honoring vendor filters and required input/output media. */ export declare function pickProfileChoiceWithModalities(profileKey: string, profile: AIProfileDefinition, options?: PickProfileChoiceWithConstraintsOptions): PickProfileChoiceResult; export declare function isProfileModalityReady(profileKey: string, profile: AIProfileDefinition, catalog?: ModelsCatalogJson): boolean; //# sourceMappingURL=modalityPolicy.d.ts.map