///
export class Chromedriver extends events<[never]> {
/**
*
* @param {import('./types').ChromedriverOpts} args
*/
constructor(args?: import('./types').ChromedriverOpts);
_log: import("@appium/base-driver/node_modules/@appium/types").AppiumLogger;
proxyHost: string;
proxyPort: string | number;
adb: import("appium-adb").default | undefined;
cmdArgs: string[] | undefined;
proc: SubProcess | null;
useSystemExecutable: boolean;
chromedriver: string | undefined;
executableDir: string;
mappingPath: string | undefined;
bundleId: string | undefined;
executableVerified: boolean;
state: string;
jwproxy: JWProxy;
isCustomExecutableDir: boolean;
verbose: boolean | undefined;
logPath: string | undefined;
disableBuildCheck: boolean;
storageClient: ChromedriverStorageClient | null;
details: {
info?: {
Browser: string;
} | undefined;
} | undefined;
/** @type {any} */
capabilities: any;
/** @type {keyof PROTOCOLS} */
desiredProtocol: keyof {
readonly W3C: "W3C";
readonly MJSONWP: "MJSONWP";
};
driverVersion: string | null;
get log(): import("@appium/base-driver/node_modules/@appium/types").AppiumLogger;
getDriversMapping(): Promise;
/**
* @param {ChromedriverVersionMapping} mapping
*/
getChromedrivers(mapping: ChromedriverVersionMapping): Promise;
getChromeVersion(): Promise;
/**
*
* @param {ChromedriverVersionMapping} newMapping
* @returns {Promise}
*/
updateDriversMapping(newMapping: ChromedriverVersionMapping): Promise;
/**
* When executableDir is given explicitly for non-adb environment,
* this method will respect the executableDir rather than the system installed binary.
* @returns {Promise}
*/
getCompatibleChromedriver(): Promise;
initChromedriverPath(): Promise;
/**
* Sync the WebDriver protocol if current on going protocol is W3C or MJSONWP.
* Does nothing if this.driverVersion is null.
*
* @returns {typeof PROTOCOLS[keyof typeof PROTOCOLS]}
*/
syncProtocol(): (typeof PROTOCOLS)[keyof typeof PROTOCOLS];
/**
* Sync the protocol by reading the given output
*
* @param {string} line The output of ChromeDriver process
* @returns {typeof PROTOCOLS[keyof typeof PROTOCOLS] | null}
*/
detectWebDriverProtocol(line: string): (typeof PROTOCOLS)[keyof typeof PROTOCOLS] | null;
/**
*
* @param {object} caps
* @param {boolean} emitStartingState
*/
start(caps: object, emitStartingState?: boolean): Promise | undefined>;
sessionId(): string | null;
restart(): Promise;
waitForOnline(): Promise;
getStatus(): Promise;
startSession(): Promise>;
stop(emitStates?: boolean): Promise;
/**
*
* @param {string} state
*/
changeState(state: string): void;
/**
*
* @param {string} url
* @param {'POST'|'GET'|'DELETE'} method
* @param {any} body
* @returns
*/
sendCommand(url: string, method: 'POST' | 'GET' | 'DELETE', body: any): Promise;
/**
*
* @param {any} req
* @param {any} res
* @privateRemarks req / res probably from Express
*/
proxyReq(req: any, res: any): Promise;
killAll(): Promise;
hasWorkingWebview(): Promise;
}
export namespace Chromedriver {
let EVENT_ERROR: string;
let EVENT_CHANGED: string;
let STATE_STOPPED: string;
let STATE_STARTING: string;
let STATE_ONLINE: string;
let STATE_STOPPING: string;
let STATE_RESTARTING: string;
}
export type ChromedriverVersionMapping = import('./types').ChromedriverVersionMapping;
export type NewSessionResponse = {
capabilities: Record;
};
import events from 'events';
import { SubProcess } from 'teen_process';
import { JWProxy } from '@appium/base-driver';
import ChromedriverStorageClient from './storage-client/storage-client';
import semver from 'semver';
import { PROTOCOLS } from '@appium/base-driver';
//# sourceMappingURL=chromedriver.d.ts.map