import type { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
export type QualityIntelligenceFourEyesViolationCode = "SELF_REVIEW_FORBIDDEN" | "SAME_REVIEWER_LABEL" | "ALREADY_PAIRED";
export declare class QualityIntelligenceFourEyesViolationError extends Error {
    readonly code: QualityIntelligenceFourEyesViolationCode;
    readonly recordId: QualityIntelligence.QualityIntelligenceReviewRecordId;
    readonly candidateId: QualityIntelligence.QualityIntelligenceReviewRecordId;
    constructor(code: QualityIntelligenceFourEyesViolationCode, record: QualityIntelligence.QualityIntelligenceReviewRecord, candidate: QualityIntelligence.QualityIntelligenceReviewRecord, detail: string);
}
/**
 * Assert that `record` and `candidate` may be paired for four-eyes governance.
 * Throws a typed `QualityIntelligenceFourEyesViolationError` on:
 *
 *   * SELF_REVIEW_FORBIDDEN — both records have `reviewerKind === "human-author"`.
 *     A human author may not also be the four-eyes second reviewer of their own
 *     authored output.
 *   * SAME_REVIEWER_LABEL — both records share the same (trimmed, case-folded)
 *     `reviewerLabel`. Display-only string comparison; no identity guarantee.
 *   * ALREADY_PAIRED — either record already references a `fourEyesPairedRecordId`.
 *
 * Returns `void` on success. The caller is responsible for actually wiring
 * `fourEyesPairedRecordId` on both records when pairing succeeds.
 */
export declare const assertFourEyesPair: (record: QualityIntelligence.QualityIntelligenceReviewRecord, candidate: QualityIntelligence.QualityIntelligenceReviewRecord) => void;
//# sourceMappingURL=fourEyes.d.ts.map