import type { PlanReporter, PlanRunStartContext, RunArtifacts } from "./plan-reporter.js"; import type { EvalSummary, RunSummary, ScopedDiagnostic, TrialResult, TrialWorkItem } from "../pipeline/plan.js"; export interface EvalMarkdownReporterOptions { /** Full path to the output markdown file. */ outputPath: string; } export declare class EvalMarkdownReporter implements PlanReporter { private readonly outputPath; private readonly sections; private readonly sectionByKey; private readonly runLevelDiagnostics; private readonly capturedTrials; constructor(options: EvalMarkdownReporterOptions); onRunStart(ctx: PlanRunStartContext): Promise; onTrialStart(item: TrialWorkItem): Promise; onTrialResult(event: { item: TrialWorkItem; result: TrialResult; }): Promise; onDiagnostics(diagnostics: ScopedDiagnostic[]): Promise; onEvalComplete(summary: EvalSummary): Promise; onRunComplete(_summary: RunSummary, _artifacts: RunArtifacts): Promise; /** Generate the full markdown string. Exposed for testing. */ generate(): string; private appendSection; /** True when the report spans more than one distinct variant name. * Used to decide whether to surface the variant tag in section * headings (suppressed for single-variant runs, which is every * plain `vally eval` invocation). Cheap O(n) early-exit scan; * callers (currently `generate()`) should compute it once per * render rather than per section. */ private hasMultipleVariants; private appendDiagnosticBlock; private appendSectionTable; private buildRow; private buildSingleTrialRow; private buildMultiTrialRow; private appendSectionFooter; } //# sourceMappingURL=eval-markdown.d.ts.map