import type { ModelProfile } from './catalog.js'; export type CapabilityName = keyof ModelProfile['capabilities'] | `input:${ModelProfile['capabilities']['modalities']['input'][number]}` | `output:${ModelProfile['capabilities']['modalities']['output'][number]}`; export type CapabilityRequirement = CapabilityName | { readonly capability: CapabilityName; readonly required: true; } | { readonly capability: CapabilityName; readonly minimum: number; }; export interface BenchmarkEvidence { readonly suite: string; readonly artifact: string; readonly measuredAt: string; readonly dimensions: Readonly>; } export interface ModelEquivalenceMember { readonly providerId: string; readonly modelId: string; readonly rank: number; readonly effort?: string; readonly requiredCapabilities: readonly CapabilityRequirement[]; readonly transportPreferences?: readonly string[]; } export interface ModelEquivalenceGroup { readonly id: string; readonly intent: 'coding' | 'general' | 'reasoning' | 'fast'; readonly members: readonly ModelEquivalenceMember[]; readonly evidence: readonly BenchmarkEvidence[]; readonly expiresAt: string; } export interface ModelAlias { readonly alias: string; readonly providerId: string; readonly modelId: string; readonly transportProviderId: string; readonly effort?: string; } export interface EquivalenceExclusion { readonly providerId: string; readonly modelId: string; readonly reason: string; readonly reviewer: string; readonly expiresAt: string; readonly provenance: string; } export interface ModelEquivalenceCouncil { readonly revision: string; readonly expiresAt: string; readonly aliases: readonly ModelAlias[]; readonly groups: readonly ModelEquivalenceGroup[]; readonly exclusions: readonly EquivalenceExclusion[]; } export declare class EquivalenceCouncilError extends Error { readonly issues: readonly string[]; constructor(issues: readonly string[]); } export declare const capabilityRequirementEquals: (left: CapabilityRequirement, right: CapabilityRequirement) => boolean; export declare const modelSupportsCapability: (profile: ModelProfile | undefined, requirement: CapabilityRequirement) => boolean; export declare const DEFAULT_MODEL_EQUIVALENCE_COUNCIL: ModelEquivalenceCouncil; export declare const validateEquivalenceCouncil: (council: ModelEquivalenceCouncil, profiles: readonly ModelProfile[], now?: Date) => void; //# sourceMappingURL=equivalence-council.d.ts.map