import Mocha from "mocha";
import { Suite } from "mocha";
import { HotTestMap } from "./HotTestMap";
import { HotTester } from "./HotTester";
import { HotDestination } from "./HotDestination";
import { HotTestStop } from "./HotTestStop";
import { HotStaq } from "./HotStaq";
import { HotRouteMethod } from "./HotRouteMethod";
/**
 * The tester that uses Mocha to executes all tests.
 */
export declare class HotTesterMocha extends HotTester {
    /**
     * The mocha instance to run.
     */
    mocha: Mocha;
    /**
     * The timeout for each test.
     */
    timeout: number;
    /**
     * The suite to execute.
     */
    suite: Suite;
    /**
     * The Mocha beforeAll event to call before any tests are executed.
     */
    beforeAll: () => Promise<void>;
    /**
     * The Mocha afterAll event to call before any tests are executed.
     */
    afterAll: () => Promise<void>;
    constructor(processor: HotStaq, name: string, baseUrl: string, testMaps?: {
        [name: string]: HotTestMap;
    }, beforeAll?: () => Promise<void>, afterAll?: () => Promise<void>);
    /**
     * Setup the Mocha/Selenium frameworks.
     *
     * @param tester The
     * @param url If this is set, this url will be used instead of the url associated with this
     * tester.
     */
    setup(isWebRoute: boolean, url?: string, destinationKey?: string): Promise<void>;
    /**
     * Executed when destroying this tester.
     */
    destroy(): Promise<void>;
    /**
     * Executed when tests are started.
     */
    onTestStart(destination: HotDestination, url: string, destinationKey?: string): Promise<boolean>;
    onTestPagePathStart(destination: HotDestination, stop: HotTestStop, continueWhenTestIsComplete?: boolean): Promise<boolean>;
    onTestAPIPathStart(destination: HotDestination, method: HotRouteMethod, testName: string, continueWhenTestIsComplete?: boolean): Promise<boolean>;
    onCommand(destination: HotDestination, stop: HotTestStop, cmd: string, args: string[], cmdFunc: ((cmdArgs: string[]) => Promise<void>)): Promise<void>;
    onTestEnd(destination: HotDestination): Promise<void>;
}
//# sourceMappingURL=HotTesterMocha.d.ts.map