/**
 * @fileoverview Pure in-memory merge of two `DonobuReport`s.
 *
 * Combines the initial Playwright run and an auto-heal rerun into a single
 * report that carries both attempts and annotates any test whose outcome
 * flipped from failing → passing as `self-healed`. The result is destined for
 * the HTML renderer (and, for back-compat, the on-disk Playwright JSON that
 * downstream dashboards consume).
 *
 * This module intentionally owns zero I/O. Callers load the reports off disk,
 * call `mergeReports`, then persist / relocate attachments / re-render as
 * needed. Keeping the merge pure makes it trivial to test and reason about.
 */
import type { DonobuReport, HealedTestDescriptor } from './model';
export interface MergeReportsParams {
    /** Pre-loaded initial report, or null when the initial run produced none. */
    initialReport: DonobuReport | null;
    /** Pre-loaded heal-run report, or null when the heal run produced none. */
    healReport: DonobuReport | null;
    /** Tests the orchestrator declared healed — used when the heal report
     *  doesn't expose them under a matching key (e.g. filter rewrites). */
    healedTests: HealedTestDescriptor[];
    /** Whether the heal rerun exited cleanly. */
    healSucceeded: boolean;
    /** Recorded in the merged report metadata for triage auto-discovery. */
    triageRunDir?: string;
    /** Recorded in the merged report metadata purely for provenance. */
    initialReportSourcePath?: string;
    healReportSourcePath?: string;
}
export declare function mergeReports(params: MergeReportsParams): DonobuReport | null;
export declare function buildTestKey(file?: string, projectName?: string, title?: string): string;
//# sourceMappingURL=merge.d.ts.map