import { Snapshot } from './snapshot';
import { Instruction } from './instruction';
import { Reporter } from './reporter';
import { ReporterConfig } from './reporter-config';
import { DefaultStep } from './default-step';
export declare class StepReporter {
    private _currentStep?;
    private reporters;
    readonly config: Required<ReporterConfig>;
    constructor(reporter?: Reporter | Reporter[] | undefined);
    flush(): Promise<void>;
    get currentStep(): DefaultStep | undefined;
    resetStep(instruction: Instruction): void;
    private enqueueReporterCalls;
    onStepBegin(snapshot: Snapshot): Promise<void>;
    onStepRetry(snapshot: Snapshot, error: Error): Promise<void>;
    onStepEnd(snapshot: Snapshot, error?: Error): Promise<void>;
}
