import { Token, Type, TokenId } from '@tsdi/ioc';
import { ICoreInjector } from '@tsdi/core';
import { ITestReport, ISuiteDescribe, ICaseDescribe } from './ITestReport';
import { Reporter } from './Reporter';
/**
 * report token.
 */
export declare const ReportsToken: TokenId<Type<Reporter>[]>;
/**
 * test report.
 *
 * @export
 * @class TestReport
 * @implements {ITestReport}
 */
export declare class TestReport implements ITestReport {
    injector: ICoreInjector;
    suites: Map<Token, ISuiteDescribe>;
    resports: Reporter[];
    getReports(): Reporter[];
    constructor();
    track(error: Error): void;
    addSuite(suit: Token, describe: ISuiteDescribe): void;
    getSuite(suit: Token): ISuiteDescribe;
    setSuiteCompleted(suit: Token): void;
    addCase(suit: Token, testCase: ICaseDescribe): void;
    getCase(suit: Token, test: string): ICaseDescribe;
    setCaseCompleted(testCase: ICaseDescribe): void;
    report(): Promise<void>;
    static ρAnn(): any;
}
