import { Token, Type } from '@tsdi/ioc';
import { ISuiteDescribe, ICaseDescribe } from './ITestReport';
/**
 * reportor.
 *
 * @export
 * @abstract
 * @class Reporter
 */
export declare abstract class Reporter {
    constructor();
    abstract render(suites: Map<Token, ISuiteDescribe>): Promise<void>;
    abstract track(error: Error): void;
    static ρAnn(): any;
}
/**
 * realtime reporter.
 *
 * @export
 * @abstract
 * @class RealtimeReporter
 */
export declare abstract class RealtimeReporter extends Reporter {
    constructor();
    /**
     * render suite.
     *
     * @abstract
     * @param {ISuiteDescribe} desc
     * @memberof RealtimeReporter
     */
    abstract renderSuite(desc: ISuiteDescribe): void;
    /**
     * render case.
     *
     * @abstract
     * @param {ICaseDescribe} desc
     * @memberof RealtimeReporter
     */
    abstract renderCase(desc: ICaseDescribe): void;
    static ρAnn(): any;
}
/**
 * is target reporter.
 *
 * @export
 * @param {*} target
 * @returns
 */
export declare function isReporterClass(target: any): target is Type<Reporter>;
