export type PrReviewSource = 'drew' | 'donovan' | 'shady' | 'codex' | 'claude-code' | 'gpt-5.5-high' | 'claude-opus-4.7-high' | 'kimi' | 'opencode' | (string & {});
export type PrReviewSeverity = 'critical' | 'high' | 'medium' | 'low' | 'nit';
export type PrReviewOutcome = 'accepted' | 'fixed' | 'rejected' | 'duplicate' | 'noise' | 'unknown';
export interface PrReviewComment {
    id: string;
    source: PrReviewSource;
    body: string;
    model?: string;
    author?: string;
    path?: string;
    line?: number;
    severity?: PrReviewSeverity;
    outcome?: PrReviewOutcome;
    createdAt?: string;
    metadata?: Record<string, unknown>;
}
export interface PrReviewReferenceFinding {
    id: string;
    title: string;
    severity: PrReviewSeverity;
    path?: string;
    line?: number;
    /**
     * Stable terms that should appear in a useful finding. Keep these
     * factual: API names, invariant names, table names, error classes.
     */
    keywords?: string[];
    fixedByCommit?: string;
    sourceCommentIds?: string[];
    metadata?: Record<string, unknown>;
}
export interface PrReviewAuditCase {
    id: string;
    repo: string;
    prNumber?: number;
    baseSha?: string;
    headSha?: string;
    title?: string;
    diff?: string;
    split?: 'train' | 'validation' | 'test' | 'holdout' | (string & {});
    comments: PrReviewComment[];
    referenceFindings: PrReviewReferenceFinding[];
    metadata?: Record<string, unknown>;
}
export interface PrReviewScoreWeights {
    recall: number;
    precision: number;
    actionability: number;
    severityCalibration: number;
    lowNoise: number;
}
export interface PrReviewMatchedFinding {
    referenceId: string;
    commentId: string;
    score: number;
}
export interface PrReviewScore {
    caseId: string;
    source: PrReviewSource;
    commentCount: number;
    referenceCount: number;
    matchedFindings: PrReviewMatchedFinding[];
    recall: number;
    precision: number;
    actionability: number;
    severityCalibration: number;
    lowNoise: number;
    aggregate: number;
    notes: string[];
}
export interface PrReviewBenchmarkSummary {
    source: PrReviewSource;
    caseCount: number;
    commentCount: number;
    aggregateMean: number;
    recallMean: number;
    precisionMean: number;
    actionabilityMean: number;
    severityCalibrationMean: number;
    lowNoiseMean: number;
}
export declare const DEFAULT_PR_REVIEW_SCORE_WEIGHTS: PrReviewScoreWeights;
export declare function commentsForSource(auditCase: PrReviewAuditCase, source: PrReviewSource): PrReviewComment[];
export declare function scorePrReviewSource(auditCase: PrReviewAuditCase, source: PrReviewSource, weights?: Partial<PrReviewScoreWeights>): PrReviewScore;
export declare function scorePrReviewComments(auditCase: PrReviewAuditCase, comments: PrReviewComment[], source: PrReviewSource, weights?: Partial<PrReviewScoreWeights>): PrReviewScore;
export declare function summarizePrReviewBenchmark(scores: PrReviewScore[]): PrReviewBenchmarkSummary[];
export declare function aggregatePrReviewScore(dimensions: Pick<PrReviewScore, 'recall' | 'precision' | 'actionability' | 'severityCalibration' | 'lowNoise'>, weights?: Partial<PrReviewScoreWeights>): number;
//# sourceMappingURL=pr-review-benchmark.d.ts.map