import { type PublishedRoutingActivation, type RequestDecomposition, type RequestRoutingRequirements, type RoutingCandidateDecision, type RoutingObjectivePolicy } from "@velum-labs/routekit-eval-contracts"; import { type RoutingModelAvailability, type RoutingScoreConstraints } from "@velum-labs/routekit-eval-core"; import { Effect } from "effect"; export type CompositionalRoutingInput = Readonly<{ snapshot: PublishedRoutingActivation; decomposition: RequestDecomposition; requirements: RequestRoutingRequirements; objective: RoutingObjectivePolicy; availableModels: readonly RoutingModelAvailability[]; maximumUnknownWeight: number; constraints?: RoutingScoreConstraints; }>; export type CompositionalRoutingErrorCode = "invalid_input" | "unknown_weight_above_maximum" | "no_eligible_models"; declare const CompositionalRoutingError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "CompositionalRoutingError"; } & Readonly; /** * Sanitized deterministic-routing failure. Candidate outputs, request text, * provider errors, and other request content are deliberately not retained. */ export declare class CompositionalRoutingError extends CompositionalRoutingError_base<{ readonly code: CompositionalRoutingErrorCode; readonly message: string; readonly candidates: readonly RoutingCandidateDecision[]; }> { } /** * Compose a classifier-produced dimension vector with the published model-by-dimension * evidence matrix. Model selection is delegated exclusively to the pure, * deterministic eval-core scorer. */ export declare const routeCompositionalRequest: (input: Readonly<{ snapshot: PublishedRoutingActivation; decomposition: RequestDecomposition; requirements: RequestRoutingRequirements; objective: RoutingObjectivePolicy; availableModels: readonly Readonly<{ model: string; served: boolean; endpoints: readonly import("@velum-labs/routekit-eval-contracts").RoutingEndpoint[]; supportsTools: boolean; supportsVision: boolean; maxInputTokens?: number; maxOutputTokens?: number; }>[]; maximumUnknownWeight: number; constraints?: Readonly<{ minimumDimensionQuality?: Readonly>; maximumFailureRate?: number; }>; }>) => Effect.Effect<{ readonly version: 2; readonly decomposition: { readonly version: 2; readonly basisDigest: string; readonly weights: readonly { readonly dimensionId: string; readonly weight: number; }[]; readonly unknownWeight: number; }; readonly requirements: { readonly endpoint: "anthropic" | "responses" | "chat"; readonly requiresTools: boolean; readonly requiresVision: boolean; readonly inputTokens?: number | undefined; readonly maxOutputTokens?: number | undefined; }; readonly objective: { readonly kind: "highest-quality"; } | { readonly kind: "lowest-cost"; readonly minimumQuality: number; } | { readonly kind: "lowest-latency"; readonly minimumQuality: number; } | { readonly kind: "balanced"; readonly minimumQuality: number; readonly weights: { readonly quality: number; readonly cost: number; readonly latency: number; }; } | { readonly kind: "pareto"; readonly minimumQuality: number; readonly preference: "quality" | "cost" | "latency"; }; readonly evidenceDigest: string; readonly candidates: readonly { readonly model: string; readonly eligible: boolean; readonly exclusionReasons: readonly string[]; readonly costStatus: "unavailable" | "known"; readonly quality?: number | undefined; readonly utility?: number | undefined; readonly rank?: number | undefined; readonly failureRate?: number | undefined; readonly p95DurationMs?: number | undefined; readonly averageCostUsd?: number | undefined; }[]; readonly selectedModel: string; readonly fallbackModels: readonly string[]; }, CompositionalRoutingError, never>; export {};