/** * Policy promotion and rollback. * * Promotion is explicitly gated: schema validation, dataset integrity, * baseline comparison, safety/correctness/flakiness gates, cost/latency policy, * and operator authorization. There is NO automatic promotion. The old policy is * always retained and the active-policy pointer is swapped atomically. */ import { type ActivePolicyPointer } from "./store.js"; import type { CandidateEvidence, RoutingPolicyCandidate } from "./types.js"; export interface PromotionGateInput { safetyFloor: number; correctnessFloor: number; flakinessCeiling: number; requiredScenarioPack: string; operatorAuthorized: boolean; } export interface PromotionGateResult { passed: boolean; reasonCodes: string[]; } /** Validate the promotion gates for a candidate policy against its evidence. */ export declare function validatePromotionGates(policy: RoutingPolicyCandidate, evidenceById: Record, gates: PromotionGateInput): PromotionGateResult; /** Promote a validated policy to be the active policy (explicit operator action). */ export declare function promotePolicy(policyId: string, authorizedBy: string, evidenceById: Record, gates: PromotionGateInput): { ok: boolean; pointer?: ActivePolicyPointer; error?: string; reasonCodes: string[]; }; /** Roll back to a previous policy. Idempotent; old policy retained. */ export declare function rollbackPolicy(policyId: string, authorizedBy: string): { ok: boolean; error?: string; }; /** Compare two policies deterministically. */ export declare function comparePolicies(a: RoutingPolicyCandidate, b: RoutingPolicyCandidate): unknown; //# sourceMappingURL=promotion.d.ts.map