import { ParseOptions } from "commander";
import "source-map-support/register";
export interface TestCase {
    name: string;
    execute: (environment?: Environment) => void | Promise<void>;
    setUp?: (environment?: Environment) => void | Promise<void>;
    tearDown?: (environment?: Environment) => void | Promise<void>;
}
export interface Environment {
    setUp?: () => void | Promise<void>;
    tearDown?: () => void | Promise<void>;
}
export interface TestSet {
    name: string;
    cases: Array<TestCase>;
    environment?: Environment;
}
export interface TestCaseResult {
    name: string;
    success: boolean;
}
export interface TestSetResult {
    name: string;
    cases: Array<TestCaseResult>;
}
export declare class TestRunner {
    private setName;
    private caseName;
    private exitFn;
    private testResults;
    private prevRunPromise;
    constructor(setName: string | undefined, caseName: string | undefined, exitFn: () => void);
    static create(argv: Array<string>, parseOptions: ParseOptions, exitFn?: () => void): TestRunner;
    private summarizeAndExit;
    run(testSet: TestSet): void;
    private static runAfterPrevRun;
    private static runTestCase;
    private static runTestSet;
}
export declare let TEST_RUNNER: TestRunner;
