import type { BaseReporterOptions } from './types';
import type { Emitter, Runner, TestEndNode, SuiteEndNode, GroupEndNode, TestStartNode, RunnerEndNode, GroupStartNode, SuiteStartNode, RunnerStartNode } from '@japa/core';
export declare abstract class BaseReporter {
    private options;
    runner: Runner<any>;
    currentFileName?: string;
    currentSuiteName?: string;
    uncaughtExceptions: {
        phase: 'test';
        error: Error;
    }[];
    constructor(options?: Partial<BaseReporterOptions>);
    private printKeyValuePair;
    protected onTestStart(_: TestStartNode): void;
    protected onTestEnd(_: TestEndNode): void;
    protected onGroupStart(_: GroupStartNode): void;
    protected onGroupEnd(_: GroupEndNode): void;
    protected onSuiteStart(_: SuiteStartNode): void;
    protected onSuiteEnd(_: SuiteEndNode): void;
    protected start(_: RunnerStartNode): Promise<void>;
    protected end(_: RunnerEndNode): Promise<void>;
    private printAggregates;
    private printErrors;
    printSummary(summary: ReturnType<Runner<any>['getSummary']>): Promise<void>;
    boot(runner: Runner<any>, emitter: Emitter): void;
}
