export type ExperienceRoute = "sol-serial" | "luna-fabric" | "luna-fabric-with-escalation"; export type ExperienceFallbackReason = "shape-unseen" | "sparse-evidence" | "unproven-evidence" | "evidence-window-mismatch" | "caller-baseline-route-mismatch" | "threshold-not-met"; export type ExperienceRejectionReason = "invalid-input" | "invalid-number" | "unknown-route" | "duplicate-shape" | "ambiguous-policy-table" | "ambiguous-evidence"; export interface ExperiencePolicyRow { readonly shape: string; readonly baseline_route: ExperienceRoute; readonly policy_route: ExperienceRoute; } export interface ExperienceRoutePolicyTable { readonly version: string; readonly evidence_window: string; readonly minimum_samples: number; readonly duration_threshold: number; readonly cost_threshold: number; readonly rows: readonly ExperiencePolicyRow[]; } export interface ExperienceEvidenceIdentity { readonly package: string; readonly fixture: string; readonly validation: string; readonly cache: string; readonly price_basis: string; readonly denominator: string; } export interface ExperienceRouteEvidence { readonly shape: string; readonly route: ExperienceRoute; readonly evidence_window: string; readonly identity: ExperienceEvidenceIdentity; readonly samples: number; readonly duration: { readonly metric_kind: "end-to-end-median"; readonly milliseconds: number; }; readonly cost: { readonly metric_kind: "estimated-cost-median"; readonly amount: number; readonly price_basis: string; readonly denominator: string; }; } export interface SelectExperienceRouteInput { readonly shape: string; readonly caller_heuristic_route: ExperienceRoute; readonly policy: ExperienceRoutePolicyTable; readonly evidence: readonly ExperienceRouteEvidence[]; } interface ExperienceResultContext { readonly policy_version: string | null; readonly shape: string | null; readonly evidence_window: string | null; readonly evidence_identity: { readonly baseline: ExperienceEvidenceIdentity | null; readonly candidate: ExperienceEvidenceIdentity | null; }; readonly authority: { readonly policy: "caller-declared"; readonly evidence: "caller-matched"; readonly execution: "not-performed"; }; } export type ExperienceRouteSelection = (ExperienceResultContext & { readonly status: "proposed"; readonly route: ExperienceRoute; readonly reason: "matched-evidence-within-thresholds"; }) | (ExperienceResultContext & { readonly status: "fallback"; readonly route: ExperienceRoute; readonly reason: ExperienceFallbackReason; }) | (ExperienceResultContext & { readonly status: "rejected"; readonly route: ExperienceRoute | null; readonly reason: ExperienceRejectionReason; }); export declare function selectExperienceRoute(input: unknown): ExperienceRouteSelection; export {};