import type { Api, Model } from "@bastani/pi-ai"; import { type Static, Type } from "typebox"; export declare const ModelConstraintsSchema: Type.TObject<{ allowedModels: Type.TOptional>; allowedProviders: Type.TOptional>; excludedProviders: Type.TOptional>; maxInputCost: Type.TOptional; maxOutputCost: Type.TOptional; minContextWindow: Type.TOptional; requiredInputs: Type.TOptional>>; allowedEfforts: Type.TOptional>>; }>; export type ModelConstraints = Static; export declare function parseModelConstraints(value: unknown): ModelConstraints | undefined; export type ModelRouterOutput = { readonly model: string; readonly effort: string | null; /** Ranked alternatives, excluding the primary. Absent on legacy recorded selections. */ readonly fallbacks?: readonly { readonly model: string; readonly effort: string | null; }[]; /** Full IDs of every model the router could choose from after all filters. Absent on legacy recorded selections. */ readonly candidates?: readonly string[]; }; /** Whether a constraint sets its own provider list. */ export declare function setsProviders(constraints: ModelConstraints | undefined): boolean; /** Every applicable declaration must hold; a caller never widens a definition restriction. */ export declare function eligiblePair(model: Model, pair: ModelRouterOutput, constraints: readonly ModelConstraints[]): boolean; //# sourceMappingURL=model-routing-constraints.d.ts.map