import type { DiversityPreference, QualityDecisionRecord, QualityEscalationRequest, QualityGatePolicy, QualityLoopOptions, QualityPersistence, ReviewerRouteCandidate, TaskQualityStatus, VerificationResultV1, VerificationRunRecord } from "./types.js"; /** Selects by authoritative route/resource/model identity, never display names. */ export declare function selectReviewerRoute(candidates: readonly ReviewerRouteCandidate[], implementationRouteId: string | undefined, preference?: DiversityPreference): ReviewerRouteCandidate | undefined; export declare class QualityService { private readonly store; private readonly gatePolicy; constructor(store: QualityPersistence, gatePolicy?: Partial); startVerification(input: Parameters[0]): VerificationRunRecord; completeVerification(verificationId: string, result: unknown, acceptanceCriteria?: readonly string[]): { readonly run: VerificationRunRecord; readonly decision: QualityDecisionRecord; readonly status: TaskQualityStatus; }; /** Record reviewer/runner interruption without manufacturing a quality verdict. */ failVerification(verificationId: string, status: "interrupted" | "blocked", failureSummary: string): VerificationRunRecord; recordDecision(input: Parameters[0]): QualityDecisionRecord; escalate(input: Parameters[0]): QualityEscalationRequest; runQualityLoop(options: QualityLoopOptions & { readonly verify: (round: number, exclusions: readonly string[]) => Promise<{ readonly result: unknown; readonly implementationRouteId?: string; readonly verificationId: string; }>; readonly repair: (round: number, feedback: VerificationResultV1, exclusions: readonly string[]) => Promise<{ readonly implementationRouteId: string; }>; }): Promise<{ readonly status: "passed" | "rejected" | "blocked"; readonly rounds: number; readonly lastDecision?: QualityDecisionRecord; }>; }