import { HotTestMap } from "./HotTestMap";
import { HotDestination } from "./HotDestination";
import { HotTestStop } from "./HotTestStop";
import { HotStaq } from "./HotStaq";
import { HotTesterMocha } from "./HotTesterMocha";
import { HotTestSeleniumDriver } from "./HotTestSeleniumDriver";
import { WebDriver } from "selenium-webdriver";
/**
 * The tester that uses Mocha to executes all tests.
 */
export declare class HotTesterMochaSelenium extends HotTesterMocha {
    /**
     * The driver to use when running tests.
     */
    driver: HotTestSeleniumDriver;
    /**
     * If set to true, this will wait for the tester API data. If
     * onSetup is used, it will have to return true in order to
     * wait for the tester data.
     */
    waitForTesterData: boolean;
    /**
     * This event is executed after the Selenium driver and url have
     * been loaded. If this returns true, Selenium will load the url.
     */
    onSetup: (driver: WebDriver, url: string) => Promise<boolean>;
    constructor(processor: HotStaq, name: string, baseUrl: string, testMaps?: {
        [name: string]: HotTestMap;
    }, onSetup?: (driver: WebDriver) => Promise<boolean>, 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>;
    /**
     * Cookies snapshotted on destroy() so the next setup() can re-add
     * them to a fresh WebDriver session. HotTester calls destroy()
     * after every destination, which would otherwise wipe auth cookies
     * (refreshToken, session) set during a previous destination's
     * login flow.
     */
    private savedCookies;
    private savedCookiesUrl;
    /**
     * 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>;
    onCommand(destination: HotDestination, stop: HotTestStop, cmd: string, args: string[], cmdFunc: ((cmdArgs: string[]) => Promise<void>)): Promise<void>;
    onTestEnd(destination: HotDestination): Promise<void>;
}
//# sourceMappingURL=HotTesterMochaSelenium.d.ts.map