///
import { CancellablePromise } from '@theintern/common';
import Tunnel, { TunnelProperties, DownloadOptions, ChildExecutor, NormalizedEnvironment } from './Tunnel';
import { Url } from 'url';
import { JobState } from './interfaces';
export default class BrowserStackTunnel extends Tunnel implements BrowserStackProperties {
automateOnly: true;
environmentUrl: string;
killOtherTunnels: boolean;
servers: (Url | string)[];
skipServerValidation: boolean;
forceLocal: boolean;
constructor(options?: BrowserStackOptions);
get auth(): string;
get executable(): string;
get extraCapabilities(): Object;
get url(): string;
protected _postDownloadFile(data: Buffer, options?: DownloadOptions): Promise;
protected _makeArgs(..._values: string[]): string[];
sendJobState(jobId: string, data: JobState): CancellablePromise;
protected _start(executor: ChildExecutor): CancellablePromise;
protected _stop(): Promise;
protected _normalizeEnvironment(environment: any): NormalizedEnvironment;
}
export interface BrowserStackProperties extends TunnelProperties {
automateOnly: true;
killOtherTunnels: boolean;
servers: (Url | string)[];
skipServerValidation: boolean;
forceLocal: boolean;
environmentUrl: string;
}
export declare type BrowserStackOptions = Partial;