///
import * as wd from 'wd';
import { Config } from './config';
export interface Stats {
status: string;
passing?: number;
pending?: number;
failing?: number;
}
export interface BrowserDef extends wd.Capabilities {
id: number;
url: string;
sessionId: string;
deviceName?: string;
variant?: string;
}
export declare class BrowserRunner {
timeout: number;
browser: wd.Browser;
stats: Stats;
sessionId: string;
timeoutId: NodeJS.Timer;
emitter: NodeJS.EventEmitter;
def: BrowserDef;
options: Config;
donePromise: Promise;
/**
* The url of the initial page to load in the browser when starting tests.
*/
url: string;
private _resolve;
private _reject;
/**
* @param emitter The emitter to send updates about test progress to.
* @param def A BrowserDef describing and defining the browser to be run.
* Includes both metadata and a method for connecting/launching the
* browser.
* @param options WCT options.
* @param url The url of the generated index.html file that the browser should
* point at.
* @param waitFor Optional. If given, we won't try to start/connect to the
* browser until this promise resolves. Used for serializing access to
* Safari webdriver, which can only have one instance running at once.
*/
constructor(emitter: NodeJS.EventEmitter, def: BrowserDef, options: Config, url: string, waitFor?: Promise);
_init(error: any, sessionId: string): void;
startTest(): void;
onEvent(event: string, data: any): void;
done(error: any): void;
extendTimeout(): void;
quit(): void;
static BrowserRunner: typeof BrowserRunner;
}