import { SuiteConfig } from "../flagpoleconfig";
import { SuiteExecutionResult } from "./suiteexecution";
export declare class TestRunner {
    private _suiteConfigs;
    private _executionResults;
    private _timeStart;
    private _subscribers;
    private _finishedPromise;
    private _finishedResolver;
    get suites(): SuiteConfig[];
    get results(): SuiteExecutionResult[];
    get exitCode(): number;
    get allPassing(): boolean;
    constructor();
    after(callback: (results: SuiteExecutionResult[]) => void): void;
    subscribe(callback: Function): void;
    addSuite(suiteConfig: SuiteConfig): void;
    run(): Promise<SuiteExecutionResult[]>;
    runSpawn(asyncExecution: boolean): Promise<SuiteExecutionResult[]>;
    protected _runSpawn(): Promise<SuiteExecutionResult[]>;
    protected _runSpawnAync(): Promise<SuiteExecutionResult[]>;
    private _onDone;
    toString(): string;
    protected _publish(message: string): void;
}
