import type { ReportFiles, ResultFile } from "@allurereport/plugin-api";
import type { AwesomeTestResult } from "@allurereport/web-awesome";
export interface ReportFile {
    name: string;
    value: string;
}
export interface AwesomeDataWriter {
    writeData(fileName: string, data: any): Promise<void>;
    writeWidget(fileName: string, data: any): Promise<void>;
    writeTestCase(test: AwesomeTestResult): Promise<void>;
    writeAttachment(source: string, file: ResultFile): Promise<void>;
}
export declare class FileSystemReportDataWriter implements AwesomeDataWriter {
    private readonly output;
    constructor(output: string);
    writeData(fileName: string, data: any): Promise<void>;
    writeWidget(fileName: string, data: any): Promise<void>;
    writeTestCase(test: AwesomeTestResult): Promise<void>;
    writeAttachment(source: string, file: ResultFile): Promise<void>;
}
export declare class InMemoryReportDataWriter implements AwesomeDataWriter {
    #private;
    writeData(fileName: string, data: any): Promise<void>;
    writeWidget(fileName: string, data: any): Promise<void>;
    writeTestCase(test: AwesomeTestResult): Promise<void>;
    writeAttachment(fileName: string, file: ResultFile): Promise<void>;
    reportFiles(): ReportFile[];
}
export declare class ReportFileDataWriter implements AwesomeDataWriter {
    readonly reportFiles: ReportFiles;
    constructor(reportFiles: ReportFiles);
    writeData(fileName: string, data: any): Promise<void>;
    writeWidget(fileName: string, data: any): Promise<void>;
    writeAttachment(source: string, file: ResultFile): Promise<void>;
    writeTestCase(test: AwesomeTestResult): Promise<void>;
}
