import { JobStatus, AqFilter } from '../index.js'; import { AsyncEventEmitter } from '@vladfrangu/async_event_emitter'; import { ReportConfig } from './report-types.js'; interface ReportStatus extends JobStatus { records: Record; files: string[]; } type ReportEventMap = Record & { progress: [status: ReportStatus, message?: string]; failure: [status: ReportStatus, error?: Error, message?: string]; end: [status: ReportStatus]; }; type ReportEventType = keyof ReportEventMap; type ReportEventParams = ReportEventMap[T]; type ReportEventListener = (...args: ReportEventParams) => unknown; export declare class ReportRunner { protected events: AsyncEventEmitter; config: ReportConfig; status: ReportStatus; constructor(config?: ReportConfig); on(event: T, listener: ReportEventListener): this; off(event: T, listener: ReportEventListener): this; build(customConfig?: ReportConfig, filters?: AqFilter[]): Promise; transform(customConfig?: ReportConfig): Promise; output(customConfig?: ReportConfig): Promise; run(filters?: AqFilter[]): Promise; _runReport(config: ReportConfig, filters?: AqFilter[]): Promise; } export {}; //# sourceMappingURL=report.d.ts.map