import type { GroupedActionDump } from './types';
export interface IReportGenerator {
    /**
     * Schedule a dump update. Writes are queued internally to guarantee serial execution.
     * This method returns immediately (fire-and-forget).
     * Screenshots are written and memory is released during this call.
     */
    onDumpUpdate(dump: GroupedActionDump): void;
    /**
     * Wait for all queued write operations to complete.
     */
    flush(): Promise<void>;
    /**
     * Finalize the report. Calls flush() internally.
     */
    finalize(dump: GroupedActionDump): Promise<string | undefined>;
    getReportPath(): string | undefined;
}
export declare const nullReportGenerator: IReportGenerator;
export declare class ReportGenerator implements IReportGenerator {
    private reportPath;
    private screenshotMode;
    private autoPrint;
    private writtenScreenshots;
    private firstWriteDone;
    private imageEndOffset;
    private initialized;
    private writeQueue;
    private destroyed;
    constructor(options: {
        reportPath: string;
        screenshotMode: 'inline' | 'directory';
        autoPrint?: boolean;
    });
    static create(reportFileName: string, opts: {
        generateReport?: boolean;
        outputFormat?: 'single-html' | 'html-and-external-assets';
        autoPrintReportMsg?: boolean;
    }): IReportGenerator;
    onDumpUpdate(dump: GroupedActionDump): void;
    flush(): Promise<void>;
    finalize(dump: GroupedActionDump): Promise<string | undefined>;
    getReportPath(): string | undefined;
    private printReportPath;
    private doWrite;
    private writeInlineReport;
    private writeDirectoryReport;
}
