type QualityBenchmarkCase = {
    caseId: string;
    predictedChains?: string[];
    expectedChains?: string[];
    tags?: string[];
};
type QualityBenchmarkCaseResult = {
    caseId: string;
    truePositive: number;
    falsePositive: number;
    falseNegative: number;
    precision: number;
    recall: number;
    f1: number;
    missedChains: string[];
    unexpectedChains: string[];
    tags: string[];
};
type QualityAggregateMetrics = {
    totalCases: number;
    totalTruePositive: number;
    totalFalsePositive: number;
    totalFalseNegative: number;
    precision: number;
    recall: number;
    f1: number;
    exactMatchCaseNum: number;
    exactMatchRate: number;
};
type QualityAssessmentConfig = {
    precisionWarnThreshold?: number;
    recallWarnThreshold?: number;
    f1WarnThreshold?: number;
    exactMatchWarnThreshold?: number;
    minimumCaseCount?: number;
};
type QualityRegressionDelta = {
    precisionDelta: number;
    recallDelta: number;
    f1Delta: number;
    exactMatchRateDelta: number;
};
type QualityRiskItem = {
    type: string;
    level: "low" | "medium" | "high";
    message: string;
    suggestion: string;
};
type QualityAssessmentReport = {
    generatedAt: string;
    metrics: QualityAggregateMetrics;
    caseResults: QualityBenchmarkCaseResult[];
    risks: QualityRiskItem[];
    regression?: QualityRegressionDelta;
    config: Required<QualityAssessmentConfig>;
};
export type { QualityBenchmarkCase, QualityBenchmarkCaseResult, QualityAggregateMetrics, QualityAssessmentConfig, QualityRegressionDelta, QualityRiskItem, QualityAssessmentReport, };
