import type { FindingSeverity, ReviewDecision, ReviewReport } from "./contracts.js"; export interface ExpectedFinding { id: string; category: string; severity: FindingSeverity; locations: Array<{ path: string; startLine?: number; endLine?: number; }>; } export interface ReviewEvaluationFixture { id: string; description: string; expectedDecision: ReviewDecision; expectedFindings: ExpectedFinding[]; disallowedFindingTitles?: string[]; } export interface HumanReviewRubric { actionability?: number; developerAcceptance?: boolean; notes?: string; } export interface ReviewQualityMetrics { expectedFindings: number; matchedFindings: number; missedFindings: number; unmatchedFindings: number; falsePositiveRate: number; recall: number; citationValidity: number; severityCalibration: number; decisionCorrect: boolean; validFindings: number; costPerValidFinding: number | null; durationMs: number; costUsd: number | null; human?: HumanReviewRubric; } export interface AggregateMetrics { recall: number; falsePositiveRate: number; citationValidity: number; decisionAccuracy: number; durationMs: number; costUsd: number | null; } export interface ReviewComparisonReport { cases: Array<{ fixtureId: string; single: ReviewQualityMetrics; committee: ReviewQualityMetrics; }>; summary: { single: AggregateMetrics; committee: AggregateMetrics; }; } export declare function evaluateReview(report: ReviewReport, fixture: ReviewEvaluationFixture, human?: HumanReviewRubric): ReviewQualityMetrics; export declare function compareReviewModes(fixtures: ReviewEvaluationFixture[], run: (fixture: ReviewEvaluationFixture, mode: "single" | "committee") => Promise): Promise; export declare function renderReviewComparison(report: ReviewComparisonReport): string;