import { type VerdictLevel } from '../eval-core/verdict.js';
import type { GapReport, KnowledgeCoverage, Lang, Report, ReportHumanAgreement, SaturationData, VarianceData, VariantPairComparison, VariantSummary } from '../types/index.js';
export declare function levelLabel(level: VerdictLevel, lang: Lang): string;
export declare function levelTooltip(level: VerdictLevel, lang: Lang): string;
export declare function renderVerdictPill(report: Report, lang: Lang): string;
/**
 * Pairwise diff (treatment vs control) bootstrap CI table — populated only when
 * --bootstrap was used and at least 2 variants ran. Each row shows whether
 * treatment significantly outperformed control on compositeScore mean.
 */
export declare function renderPairwiseDiff(pairs: VariantPairComparison[] | undefined, lang: Lang): string;
/**
 * Human-gold agreement section — rendered when --gold-dir was used at run time
 * and the report has been re-persisted with `meta.humanAgreement`. Shows α
 * (primary), bootstrap CI on α, weighted κ, Pearson — and surfaces a
 * contamination warning prominently when the gold annotator id overlaps with
 * the judge model id.
 */
export declare function renderHumanAgreement(agreement: ReportHumanAgreement | undefined, lang: Lang): string;
/**
 * Saturation curve — answers "did I run enough samples?". Renders an inline
 * SVG of mean ± 95% CI shading vs cumulative N, one curve per variant. The
 * verdict line below the chart calls out the saturation point (when the curve
 * has flattened enough that more samples don't materially shrink the CI).
 *
 * Hidden when variance is absent (single-run reports) or when there are fewer
 * than 2 checkpoints. We keep the chart visible at 2-4 checkpoints (= repeat
 * < 5) so users can see the trajectory; the verdict is only computed at
 * repeat ≥ 5.
 */
export declare function renderSaturationCurve(saturation: SaturationData | undefined, variants: string[], lang: Lang): string;
export declare function renderSummaryCards(variants: string[], summary: Record<string, VariantSummary>, lang: Lang, variance?: VarianceData): string;
/**
 * 评分说明 modal — 公开 composite 计算方式 + 局限,所有展示综合分的地方都通向同一份说明
 * (六维对比表头 / 列表页 score 列 / 趋势页 chart caption)。
 *
 * 测量学诚实性 ≠ 藏起来怕用户误用,而是展示 + 说清楚边界。这个 modal 是简版 (~10 行),
 * 完整推导 (五层评分管道架构 / ratioToScore 公式 / 多层 gate 与 composite 关系)
 * 在 docs/zh/specs/scoring.md。
 */
export declare function renderScoringModal(id: string, lang: Lang): string;
/**
 * Cross-sample inter-judge agreement table — only renders when at least one variant
 * has multi-judge ensemble data. This is the v0.20.2 "blog headline" view: shows
 * Pearson + MAD across the whole sample set, the metric that refutes "Claude judge
 * Claude same-modality bias".
 */
export declare function renderJudgeAgreementBlock(variants: string[], summary: Record<string, VariantSummary>, lang: Lang): string;
export declare function renderMethodologyAudit(report: Report, variants: string[], summary: Record<string, VariantSummary>, lang: Lang): string;
export declare function renderVarianceComparisons(variance: VarianceData | undefined, lang: Lang, layeredStatsOpen?: boolean, summary?: Record<string, VariantSummary>): string;
export declare function renderAnalysis(report: Report | undefined, lang: Lang): string;
export declare function renderAgentOverview(variants: string[], summary: Record<string, VariantSummary>, lang: Lang): string;
export declare function renderCoverageSection(coverage: Record<string, KnowledgeCoverage> | undefined, lang: Lang): string;
/**
 * Render the knowledge gap section: per-variant gap rate + mandatory test set
 * watermark + signal classification + inventory of individual signals.
 * See docs/specs/knowledge-gap-signal-spec.md for the semantics.
 */
/**
 * Combined knowledge-interaction section: coverage + gap side-by-side per variant.
 *
 * v0.17 起替代原独立的 renderCoverageSection + renderGapSection。两者都是"测评集
 * × 知识库交互"的产物(spec §二),分开展示会让读者只看一个指标得出误判结论。合并后
 * 每个 variant 一张 card,左右两栏并排展示"用了多少"vs"撞了多少",形成完整诊断画像。
 */
export declare function renderKnowledgeInteractionSection(coverage: Record<string, KnowledgeCoverage> | undefined, gapReports: Record<string, GapReport> | undefined, lang: Lang): string;
export declare function renderGapSection(gapReports: Record<string, GapReport> | undefined, lang: Lang): string;
//# sourceMappingURL=summary.d.ts.map