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, 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, lang: Lang): string; export declare function renderMethodologyAudit(report: Report, variants: string[], summary: Record, lang: Lang): string; export declare function renderVarianceComparisons(variance: VarianceData | undefined, lang: Lang, layeredStatsOpen?: boolean, summary?: Record): string; export declare function renderAnalysis(report: Report | undefined, lang: Lang): string; export declare function renderAgentOverview(variants: string[], summary: Record, lang: Lang): string; export declare function renderCoverageSection(coverage: Record | 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 | undefined, gapReports: Record | undefined, lang: Lang): string; export declare function renderGapSection(gapReports: Record | undefined, lang: Lang): string;