///
import Tunnel, { TunnelProperties, DownloadOptions, ChildExecutor } from './Tunnel';
import { CancellablePromise } from '@theintern/common';
export default class SeleniumTunnel extends Tunnel implements SeleniumProperties {
seleniumArgs: string[];
drivers: DriverDescriptor[];
baseUrl: string;
version: string;
seleniumTimeout: number;
webDriverDataUrl: string | null;
private _webDriverDataLoaded;
constructor(options?: SeleniumOptions);
get artifact(): string;
get directory(): string;
get executable(): string;
get isDownloaded(): boolean;
get url(): string;
download(forceDownload?: boolean): CancellablePromise;
sendJobState(): CancellablePromise;
protected _updateWebDriverData(): CancellablePromise;
protected _getDriverConfigs(): DriverFile[];
protected _makeArgs(): string[];
protected _postDownloadFile(data: Buffer, options: SeleniumDownloadOptions): Promise;
protected _start(executor: ChildExecutor): CancellablePromise;
}
export interface DriverFile extends RemoteFile {
seleniumProperty: string;
}
export interface RemoteFile {
dontExtract?: boolean;
directory?: string;
executable: string;
url: string;
}
export declare type DriverDescriptor = string | DriverFile | {
name: string;
version?: string;
};
export interface SeleniumProperties extends TunnelProperties {
seleniumArgs: string[];
drivers: DriverDescriptor[];
baseUrl: string;
version: string;
seleniumTimeout: number;
}
export declare type SeleniumOptions = Partial;
export interface SeleniumDownloadOptions extends DownloadOptions {
executable?: string;
dontExtract?: boolean;
}