import type { DeepReviewConfigV1 } from "./config.js"; import type { ClassifiedClusterV1, FindingConfidenceV1, WorkerFindingV1 } from "./finding.js"; import type { PreviousFindingV1, PullRequestPacketV1 } from "./packet.js"; export interface CouncilMemberContext { readonly memberId: string; readonly model: string; readonly independenceGroup: string; } export interface CandidateRecord { readonly candidateId: string; readonly memberId: string; readonly independenceGroup: string; readonly finding: WorkerFindingV1; } export interface PublishedFindingV1 extends WorkerFindingV1 { readonly findingId: string; readonly stableDedupeKey: string; readonly supportingCandidateIds: readonly string[]; readonly supportingIndependenceGroups: readonly string[]; readonly presidentConfidence: FindingConfidenceV1; readonly matchedPreviousFindingId?: string; } export interface ArtifactFindingV1 { readonly candidateIds: readonly string[]; readonly disposition: "rejected" | "not-publishable"; readonly reason: string; readonly finding?: WorkerFindingV1; } export interface SafeDiagnosticV1 { readonly id: string; readonly severity: "warning" | "error"; readonly message: string; } export declare function validateCandidatePartition(clusters: readonly ClassifiedClusterV1[], expectedCandidateIds: ReadonlySet): void; export interface ApplyConsensusOptions { readonly config: DeepReviewConfigV1; readonly packet: PullRequestPacketV1; readonly clusters: readonly ClassifiedClusterV1[]; readonly candidates: ReadonlyMap; } export interface ConsensusResult { readonly publishableFindings: readonly PublishedFindingV1[]; readonly artifactFindings: readonly ArtifactFindingV1[]; readonly diagnostics: readonly SafeDiagnosticV1[]; } export declare function applyConsensusGates(options: ApplyConsensusOptions): ConsensusResult; export interface PriorMarkerReconciliationInput { readonly finding: WorkerFindingV1; readonly stableDedupeKey: string; readonly matchedPreviousFindingId?: string; readonly previousFindings: readonly PreviousFindingV1[]; readonly headSha: string; } export declare function reconcilePriorFindingId(input: PriorMarkerReconciliationInput): string | undefined; export declare function countSuccessfulIndependenceGroups(members: readonly CouncilMemberContext[], successfulMemberIds: ReadonlySet): number; export declare function quorumAvailable(config: DeepReviewConfigV1, successfulGroupCount: number): boolean; //# sourceMappingURL=consensus.d.ts.map