/**
 * @fileoverview Shared state-file helper for Donobu reporters.
 *
 * Each Donobu reporter (HTML, Markdown, Slack) records its intended output
 * path into a single state file that the auto-heal orchestrator reads after
 * merging two runs, so it can re-render every configured format at the same
 * path the reporter originally chose.
 *
 * When multiple reporters run in the same Playwright process, each one calls
 * {@link mergeStateFileEntry} in its `onEnd` hook. The helper is
 * read-modify-write: it loads any previously-written state, merges this
 * reporter's `donobuOutputs` entry in without clobbering sibling entries, and
 * writes the result back. Synchronous fs I/O is sufficient — Playwright runs
 * reporter hooks sequentially within a single JS event loop.
 */
import { type DonobuReport, type DonobuReportOutputs } from './model';
/**
 * Merge a single reporter's `donobuOutputs` entry into the shared state file.
 * Safe to call from multiple reporters in the same run — each reporter's
 * entry is merged alongside any siblings already written.
 *
 * @param playwrightOutputDir - the Playwright JSON output dir (passed via
 *   `PLAYWRIGHT_JSON_OUTPUT_DIR`). When unset, the call is a no-op because
 *   we have nowhere canonical to land the state file.
 * @param report - the fresh `DonobuReport` this reporter built from live events.
 *   Its `suites` overwrite any previous state (they're identical across
 *   reporters running the same test run, so either is fine).
 * @param outputsEntry - the format-keyed entry this reporter is contributing.
 */
export declare function mergeStateFileEntry(playwrightOutputDir: string | undefined, report: DonobuReport, outputsEntry: DonobuReportOutputs): void;
//# sourceMappingURL=stateFile.d.ts.map