// Type definitions for WebdriverIO 4.8 // Project: http://www.webdriver.io/ // Definitions by: Nick Malaguti // Tim Brust // Fredrik Smedberg // Tanvir ul Islam // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// declare namespace WebdriverIO { type Method = 'POST' | 'GET' | 'DELETE'; interface RawResult { sessionId: string; value: T; state: 'failure' | 'success'; selector?: string; message?: string; hCode?: number; class?: string; error?: string; } type ElementId = string; interface Element { ELEMENT: ElementId; } interface CssProperty { property: string; value: string; parsed: ParsedCssProperty; } interface ParsedCssProperty { hex: string; alpha: number; rgb: string; rgba: string; type: string; string: string; quote: string; unit: string; value: string | number | string[] | number[]; } interface Size { width: number; height: number; } interface Position { x: number; y: number; } interface DOMRect { width: number; height: number; x: number; y: number; } enum ApplicationCacheStatus { UNCACHED = 0, IDLE = 1, CHECKING = 2, DOWNLOADING = 3, UPDATE_READY = 4, OBSOLETE = 5 } enum Button { left = 0, middle = 1, right = 2 } interface Status { build?: { version: string; revision?: string; time?: string; }; os?: { name: string; arch?: string; version?: string; }; java?: { version?: string; }; } interface StorageItem { key: string; value: any; } interface StorageItems { [key: string]: any; } interface GeoLocation { latitude: number; longitude: number; altitude: number; } interface CommandHistoryEntry { command: string; args: any[]; } type Axis = 'x' | 'y'; type Timeouts = 'script' | 'pageLoad' | 'implicit'; type PageLoadingStrategy = 'none' | 'eager' | 'normal'; type LocatorStrategy = 'css selector' | 'link text' | 'partial link text' | 'tag name' | 'xpath'; interface LogEntry { timestamp: number; level: string; message: string; } type LoggingPreferenceType = 'OFF' | 'SEVERE' | 'WARNING' | 'INFO' | 'CONFIG' | 'FINE' | 'FINER' | 'FINEST' | 'ALL'; interface LoggingPreferences { browser?: LoggingPreferenceType; driver?: LoggingPreferenceType; server?: LoggingPreferenceType; client?: LoggingPreferenceType; } interface ProxyObject { proxyType?: 'pac' | 'noproxy' | 'autodetect' | 'system' | 'manual'; proxyAutoconfigUrl?: string; ftpProxy?: string; ftpProxyPort?: number; httpProxy?: string; httpProxyPort?: number; sslProxy?: string; sslProxyPort?: number; socksProxy?: string; socksProxyPort?: number; socksVersion?: string; socksUsername?: string; socksPassword?: string; } interface Session { id: string; capabilities: DesiredCapabilities; } interface Capabilities { browserName: string; acceptInsecureCerts?: boolean; browserVersion?: string; platformName?: string; pageLoadStrategy?: PageLoadingStrategy; proxy?: ProxyObject; setWindowRect?: boolean; timeouts?: Timeouts; unhandledPromptBehavior?: string; } interface DesiredCapabilities extends Capabilities { // Read-only capabilities cssSelectorsEnabled?: boolean; handlesAlerts?: boolean; version?: string; platform?: string; // Read-write capabilities javascriptEnabled?: boolean; databaseEnabled?: boolean; locationContextEnabled?: boolean; applicationCacheEnabled?: boolean; browserConnectionEnabled?: boolean; webStorageEnabled?: boolean; acceptSslCerts?: boolean; rotatable?: boolean; nativeEvents?: boolean; unexpectedAlertBehaviour?: string; elementScrollBehavior?: number; // Grid-specific seleniumProtocol?: string; maxInstances?: number; environment?: string; // Selenium RC (1.0) only commandLineFlags?: string; executablePath?: string; timeoutInSeconds?: number; onlyProxySeleniumTraffic?: boolean; avoidProxy?: boolean; proxyEverything?: boolean; proxyRequired?: boolean; browserSideLog?: boolean; optionsSet?: boolean; singleWindow?: boolean; dontInjectRegex?: RegExp; userJSInjection?: boolean; userExtensions?: string; // RemoteWebDriver specific 'webdriver.remote.sessionid'?: string; 'webdriver.remote.quietExceptions'?: boolean; // Selenese-Backed-WebDriver specific 'selenium.server.url'?: string; loggingPrefs?: { browser?: LoggingPreferences; driver?: LoggingPreferences; server?: LoggingPreferences; client?: LoggingPreferences; }; // Firefox firefox_binary?: string; firefoxProfileTemplate?: string; captureNetworkTraffic?: boolean; addCustomRequestHeaders?: boolean; trustAllSSLCertificates?: boolean; changeMaxConnections?: boolean; profile?: string; pageLoadingStrategy?: string; // IE specific 'ie.forceCreateProcessApi'?: boolean; 'ie.browserCommandLineSwitches'?: string; 'ie.usePerProcessProxy'?: boolean; 'ie.ensureCleanSession'?: boolean; 'ie.setProxyByServer'?: boolean; ignoreProtectedModeSettings?: boolean; ignoreZoomSetting?: boolean; initialBrowserUrl?: string; enablePersistentHover?: boolean; enableElementCacheCleanup?: boolean; requireWindowFocus?: boolean; browserAttachTimeout?: number; logFile?: string; logLevel?: string; host?: string; extractPath?: string; silent?: string; killProcessesByName?: boolean; // Safari specific 'safari.options'?: { [name: string]: any; }; cleanSession?: boolean; // Chrome specific chromeOptions?: { args?: string[]; binary?: string; extensions?: string[]; localState?: { [name: string]: any; }; detach?: boolean; debuggerAddress?: string; excludeSwitches?: string[]; minidumpPath?: string; mobileEmulation?: { [name: string]: any; }; perfLoggingPrefs?: { [name: string]: any; }; windowTypes?: string[]; }; perfLoggingPrefs?: { enableNetwork?: boolean; enablePage?: boolean; enableTimeline?: boolean; tracingCategories?: boolean; bufferUsageReportingInterval?: boolean; }; // RC honorSystemProxy?: boolean; ensureCleanSession?: boolean; } interface Cookie extends RawResult { name: string; value: string; path?: string; httpOnly?: boolean; expiry?: number; secure: boolean; } interface Suite { file: string; parent: string; pending: boolean; title: string; type: string; } interface Test extends Suite { currentTest: string; passed: boolean; duration: any; } interface Hooks { onError(error: Error): Promise & undefined; onPrepare( config: Options, capabilities: DesiredCapabilities ): Promise & undefined; onComplete(exitCode: number): Promise & undefined; before( capabilities: DesiredCapabilities, specs: string[] ): Promise & undefined; beforeCommand( commandName: string, args: any[] ): Promise & undefined; beforeFeature(feature: string): Promise & undefined; beforeHook(): Promise & undefined; beforeScenario(scenario: string): Promise & undefined; beforeSession( config: Options, capabilities: DesiredCapabilities, specs: string[] ): Promise & undefined; beforeStep(step: string): Promise & undefined; beforeSuite(suite: Suite): Promise & undefined; beforeTest(test: Test): Promise & undefined; afterHook(): Promise & undefined; after( result: number, capabilities: DesiredCapabilities, specs: string[] ): Promise & undefined; afterCommand( commandName: string, args: any[], result: any, error?: Error ): Promise & undefined; afterScenario(scenario: any): Promise & undefined; afterSession( config: Options, capabilities: DesiredCapabilities, specs: string[] ): Promise & undefined; afterStep(stepResult: any): Promise & undefined; afterSuite(suite: Suite): Promise & undefined; afterTest(test: Test): Promise & undefined; afterFeature(feature: string): Promise & undefined; } interface Options { baseUrl?: string; bail?: number; coloredLogs?: boolean; capabilities?: DesiredCapabilities[]; connectionRetryTimeout?: number; connectionRetryCount?: number; debug?: number; execArgv?: string[] | null; desiredCapabilities?: DesiredCapabilities; exclude?: string[]; framework?: string; hostname?: string; isWDIO?: boolean; protocol?: string; port?: number; path?: string; plugins?: { [name: string]: any; }; reporters?: string[] | ((...args: any[]) => void); reporterOptions?: { outputDir?: string; }; logLevel?: string; maxInstances?: number; maxInstancesPerCapability?: number; maxSession?: number; mochaOpts?: { [name: string]: any; }; jasmineNodeOpts?: { [name: string]: any; }; cucumberOpts?: { [name: string]: any; }; services?: string[] | ((...args: any[]) => void); screenshotPath?: string; specs?: string[]; seleniumLogs?: string; suites?: { [name: string]: string[]; }; sync?: boolean; waitforTimeout?: number; waitforInterval?: number; user?: string; key?: string; } interface UnknownOptions { [name: string]: any; } interface MultiRemoteOptions { [name: string]: Options; } interface Config extends Options, Hooks { } interface Client { desiredCapabilities: DesiredCapabilities; } interface Client { sessionId: string; } // Options interface Client { options: Options; } class Launcher { constructor(file: string, data: Options); run(): Promise; } class ErrorHandler { constructor(type: string, msg: string | number); } function multiremote(options: MultiRemoteOptions): Client; function remote(options?: Options, modifier?: (...args: any[]) => any): Client; // EventEmitter interface Client { addListener( event: string, listener: (...args: any[]) => void ): Client; on( event: string, listener: (...args: any[]) => void ): Client; once( event: string, listener: (...args: any[]) => void ): Client; removeListener( event: string, listener: (...args: any[]) => void ): Client; removeAllListeners(event?: string): Client; setMaxListeners(n: number): Client; listeners(event: string): Client; emit( event: string, ...args: any[] ): Client; } // Promise interface Client { finally(callback: (...args: any[]) => void): Client; then

( onFulfilled?: (value: T) => P | Client

, onRejected?: (error: any) => P | Client

): Client

; catch

( onRejected?: (error: any) => P | Client

): Client

; inspect(): { state: "fulfilled" | "rejected" | "pending"; value?: T; reason?: any; }; } interface Client { addValue( selector: string, value: string | number ): Client> & RawResult; addValue(value: string | number): Client> & RawResult; addValue

( selector: string, value: string | number, ): Client

; addValue

(value: string | number): Client

; clearElement(selector?: string): Client> & RawResult; clearElement

(selector?: string): Client

; click(selector?: string): Client> & RawResult; click

(selector?: string): Client

; doubleClick(selector?: string): Client> & RawResult; doubleClick

(selector?: string): Client

; dragAndDrop( sourceElem: string, destinationElem: string ): Client> & RawResult; dragAndDrop

( sourceElem: string, destinationElem: string ): Client

; dragAndDrop(destinationElem: string): Client> & RawResult; dragAndDrop

(destinationElem: string): Client

; leftClick(selector?: string): Client> & RawResult; leftClick( selector: string, xoffset?: number, yoffset?: number ): Client> & RawResult; leftClick( xoffset?: number, yoffset?: number ): Client & undefined; leftClick

(selector?: string): Client

; leftClick

( selector: string, xoffset?: number, yoffset?: number ): Client

; leftClick

( xoffset?: number, yoffset?: number ): Client

; middleClick(selector?: string): Client> & RawResult; middleClick( selector: string, xoffset?: number, yoffset?: number ): Client> & RawResult; middleClick( xoffset?: number, yoffset?: number ): Client> & RawResult; middleClick

(selector?: string): Client

; middleClick

( selector: string, xoffset?: number, yoffset?: number ): Client

; middleClick

( xoffset?: number, yoffset?: number ): Client

; moveToObject(selector?: string): Client> & RawResult; moveToObject( selector: string, xoffset?: number, yoffset?: number ): Client> & RawResult; moveToObject( xoffset?: number, yoffset?: number ): Client> & RawResult; moveToObject

(selector?: string): Client

; moveToObject

( selector: string, xoffset?: number, yoffset?: number ): Client

; moveToObject

( xoffset?: number, yoffset?: number ): Client

; rightClick(selector?: string): Client> & RawResult; rightClick( selector: string, xoffset?: number, yoffset?: number ): Client> & RawResult; rightClick( xoffset?: number, yoffset?: number ): Client> & RawResult; rightClick

(selector?: string): Client

; rightClick

( selector: string, xoffset?: number, yoffset?: number ): Client

; rightClick

( xoffset?: number, yoffset?: number ): Client

; selectByAttribute( selector: string, attribute: string, value: string | number ): Client> & RawResult; selectByAttribute( attribute: string, value: string | number ): Client> & RawResult; selectByAttribute

( selector: string, attribute: string, value: string | number ): Client

; selectByAttribute

( attribute: string, value: string | number ): Client

; selectByIndex( selectElem: string, index: number ): Client> & RawResult; selectByIndex(index: number): Client> & RawResult; selectByIndex

( selectElem: string, index: number ): Client

; selectByIndex

(index: number): Client

; selectByValue( selectElem: string, value: string ): Client> & RawResult; selectByValue(value: string): Client> & RawResult; selectByValue

( selectElem: string, value: string ): Client

; selectByValue

(value: string): Client

; selectByVisibleText( selectElem: string, text: string ): Client> & RawResult; selectByVisibleText(text: string): Client> & RawResult; selectByVisibleText

( selectElem: string, text: string ): Client

; selectByVisibleText

(text: string): Client> & RawResult; selectorExecute

( selectors: string | string[], script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, ...args: any[] ): Client

& any; selectorExecute

( selectors: string | string[], script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, ...args: any[] ): Client

& any; selectorExecuteAsync

( selectors: string | string[], script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, ...args: any[] ): Client

& any; setValue( selector: string, values: number | string | string[] ): Client> & RawResult; setValue( values: number | string | string[] ): Client> & RawResult; setValue

( selector: string, values: number | string | string[] ): Client & undefined; setValue

( values: number | string | string[] ): Client & undefined; submitForm(selector?: string): Client> & RawResult; submitForm

(selector?: string): Client

; } // Cookie interface Client { deleteCookie(name?: string): Client> & RawResult; deleteCookie

(name?: string): Client

; getCookie(): Client & Cookie[]; getCookie(name: string): Client & Cookie; getCookie

(name?: string): Client

; setCookie(cookie: Cookie): Client> & RawResult; setCookie

(cookie: Cookie): Client

; } // Grid interface Client { getGridNodeDetails(): Client & UnknownOptions; getGridNodeDetails

(): Client

; gridProxyDetails(): Client & UnknownOptions; gridProxyDetails

(): Client

; gridTestSession(): Client & UnknownOptions; gridTestSession

(): Client

; } // Mobile interface Client { background(seconds: number): Client; closeApp(): Client; context(id?: string): Client; contexts(): Client; currentActivity(): any; deviceKeyEvent(keyValue: number): Client; getAppStrings(language: string): Client; getCurrentDeviceActivity(): Client; getDeviceTime(): Client; getGeoLocation(): Client; getNetworkConnection(): Client; getOrientation(): Client; hideDeviceKeyboard(strategy: 'tapOutside' | 'pressKey'): Client; hold(selector: string): Client; installApp(path: string): Client; isAppInstalled(bundleId: string): Client; isLocked(): boolean; launch(): Client; lock(seconds: number): Client; longPressKeycode(keyCode: string, metaState: string): Client; openNotifications(): Client; orientation(setTo?: 'landscape' | 'portrait'): 'landscape' | 'portrait'; performMultiAction(touchAttributes: any): Client; performTouchAction(touchAttributes: any): Client; pressKeycode(keyCode: string, metaState: string): Client; pullFile(path: string): Client; pullFolder(path: string): Client; pushFile(path: string, data: any): Client; release(selector: string): Client; removeApp(bundleId: string): Client; reset(): Client; rotate( x: number, y: number, duration?: number, radius?: number, rotation?: number, touchCount?: number ): Client; setGeoLocation(location: GeoLocation): Client; setImmediateValue(id: string, value: string | string[]): Client; setNetworkConnection(flags: 0 | 1 | 2 | 4 | 6): Client; setOrientation(setTo: 'landscape' | 'portrait'): Client; settings(settings?: { [key: string]: string }): Client; shake(): Client; startActivity(appPackage: string, activity: string): Client; strings(language: string): Client; swipe( selector?: string, xOffset?: number, yOffset?: number, speed?: number ): Client; swipeDown(selector: string, speed?: number): Client; swipeLeft(selector: string, speed?: number): Client; swipeRight(selector: string, speed?: number): Client; swipeUp(selector: string, speed?: number): Client; toggleAirplaneMode(): Client; toggleData(): Client; toggleLocationServices(): Client; toggleTouchIdEnrollment(match: boolean): Client; toggleWiFi(): Client; touch(selector: string, longClick: boolean): Client; touchAction(selector: string, action: 'tap' | 'press'): Client; touchId(validFingerprint?: boolean): Client; touchMultiPerform(actions: any): Client; touchPerform(actions: any): Client; unlock(): Client; } // Property interface Client { getAttribute( selector: string, attributeName: string ): Client & Client & string & null; getAttribute( selector: string, attributeName: string ): Client & Client & string[] & null[]; getAttribute(attributeName: string): Client & Client & string & null; getAttribute(attributeName: string): Client & Client & string[] & null[]; getAttribute

( selector: string, attributeName: string ): Client

; getAttribute

(attributeName: string): Client

; getCssProperty( selector: string, cssProperty: string ): Client & CssProperty; getCssProperty( selector: string, cssProperty: string ): Client & CssProperty[]; getCssProperty(cssProperty: string): Client & CssProperty; getCssProperty(cssProperty: string): Client & CssProperty[]; getCssProperty

( selector: string, cssProperty: string ): Client

; getCssProperty

(cssProperty: string): Client

; getElementSize(selector: string): Client & Size; getElementSize(): Client & Size; getElementSize(selector: string): Client & Size[]; getElementSize(): Client & Size[]; getElementSize( selector: string, dimension?: string ): Client & number; getElementSize( selector: string, dimension?: string ): Client & number[]; getElementSize(dimension?: string): Client & number; getElementSize(dimension?: string): Client & number[]; getElementSize

(selector?: string): Client

; getElementSize

(dimension?: string): Client

; getElementSize

( selector: string, dimension?: string ): Client

; getHTML( selector: string, includeSelectorTag?: boolean ): Client & string; getHTML( selector: string, includeSelectorTag?: boolean ): Client & string[]; getHTML(includeSelectorTag?: boolean): Client & string; getHTML(includeSelectorTag?: boolean): Client & string[]; getHTML

(selector?: string): Client

; getHTML

( selector: string, includeSelectorTag?: boolean ): Client

; getHTML

(includeSelectorTag?: boolean): Client

; getLocation(axis?: Axis): Client & number; getLocation

(axis?: Axis): Client

; getLocation(selector?: string): Client & Position; getLocation

(selector?: string): Client

; getLocation(selector: string, axis?: Axis): Client & number; getLocation

(selector: string, axis?: Axis): Client

; getLocationInView(axis?: Axis): Client & number; getLocationInView(axis?: Axis): Client & number[]; getLocationInView

(axis?: Axis): Client

; getLocationInView(selector?: string): Client & Position; getLocationInView(selector?: string): Client & Position[]; getLocationInView

(selector?: string): Client

; getLocationInView(selector: string, axis?: Axis): Client & number; getLocationInView(selector: string, axis?: Axis): Client & number[]; getLocationInView

(selector: string, axis?: Axis): Client

; getSource(): Client & string; getSource

(): Client

; getTagName(selector?: string): Client & string; getTagName(selector?: string): Client & string[]; getTagName

(selector?: string): Client

; getText(selector?: string): Client & string; getText(selector?: string): Client & string[]; getText

(selector?: string): Client

; getTitle(): Client & string; getTitle

(): Client

; getUrl(): Client & string; getUrl

(): Client

; getValue(selector?: string): Client & string; getValue(selector?: string): Client & string[]; getValue

(selector?: string): Client

; } // Protocol interface Client { alertAccept(): Client>; alertAccept

(): Client

; alertDismiss(): Client>; alertDismiss

(): Client

; alertText(): Client | string; alertText(text: string): Client | null; alertText

(text?: string): Client

; /** @deprecated */ applicationCacheStatus(): Client> & RawResult & never; /** @deprecated */ applicationCacheStatus

(): Client

; back(): Client>; back

(): Client

; /** @deprecated in favour of Actions.pointerDown */ buttonDown(button?: string | Button): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerDown */ buttonDown

(button?: string | Button): Client

; /** @deprecated in favour of Actions.pointerDown */ buttonPress(button?: string | Button): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerDown */ buttonPress

(button?: string | Button): Client

; /** @deprecated in favour of Actions.pointerUp */ buttonUp(button?: string | Button): Client> & RawResult; /** @deprecated in favour of Actions.pointerUp */ buttonUp

(button?: string | Button): Client

; cookie(): Client> & RawResult; cookie( method: Method, key?: Cookie | string ): Client> & RawResult; /** @deprecated in favour of Actions.pointerDown(0) + Actions.pointerMove */ doDoubleClick(): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerDown(0) + Actions.pointerMove */ doDoubleClick

(): Client

; element(selector: string): Client> & RawResult; element

(selector: string): Client

; elementActive(): Client> & RawResult; elementActive

(): Client

; elementIdAttribute( id: ElementId, attributeName: string ): Client> & RawResult; elementIdAttribute

( id: ElementId, attributeName: string ): Client

; elementIdClear(id: ElementId): Client> & RawResult; elementIdClear

(id: ElementId): Client

; elementIdClick(id: ElementId): Client> & RawResult; elementIdClick

(id: ElementId): Client

; elementIdCssProperty( id: ElementId, propertyName: string ): Client> & RawResult; elementIdCssProperty

( id: ElementId, propertyName: string ): Client

; /** @deprecated */ elementIdDisplayed(id: ElementId): Client> & RawResult & never; /** @deprecated */ elementIdDisplayed

(id: ElementId): Client

; elementIdElement( id: ElementId, selector: string ): Client> & RawResult; elementIdElement

( id: ElementId, selector: string ): Client

; elementIdElements( id: ElementId, selector: string ): Client> & RawResult; elementIdElements

( id: ElementId, selector: string ): Client

; elementIdEnabled(id: ElementId): Client> & RawResult; elementIdEnabled

(id: ElementId): Client

; /** @deprecated in favour of elementIdRect */ elementIdLocation(id: ElementId): Client> & RawResult & never; /** @deprecated in favour of elementIdRect */ elementIdLocation

(id: ElementId): Client

; /** @deprecated in favour of elementIdRect */ elementIdLocationInView(id: ElementId): Client> & RawResult & never; /** @deprecated in favour of elementIdRect */ elementIdLocationInView

(id: ElementId): Client

; elementIdName(id: ElementId): Client> & RawResult; elementIdName

(id: ElementId): Client

; elementIdRect(id: ElementId): Client> & RawResult; elementIdRect

(id: ElementId): Client

; elementIdSelected(id: ElementId): Client> & RawResult; elementIdSelected

(id: ElementId): Client

; /** @deprecated in favour of elementIdRect */ elementIdSize(id: ElementId): Client> & RawResult & never; /** @deprecated in favour of elementIdRect */ elementIdSize

(id: ElementId): Client

; elementIdText(id: ElementId): Client> & RawResult; elementIdText

(id: ElementId): Client

; elementIdValue( id: ElementId, values: string | string[] ): Client> & RawResult; elementIdValue

( id: ElementId, values: string | string[] ): Client

; elements(selector: string): Client> & RawResult; elements

(selector: string): Client

; execute( script: string | ((...args: any[]) => void), ...args: any[] ): Client> & RawResult; executeAsync( script: string | ((...args: any[]) => void), ...args: any[] ): Client> & RawResult; /** @deprecated */ file(date: string): Client> & never; /** @deprecated */ file

(date: string): Client

& never; forward(): Client> & RawResult; forward

(): Client

; frame(id: any): Client> & RawResult; frame

(id: any): Client

; frameParent(): Client> & RawResult; frameParent

(): Client

; /** @deprecated */ imeActivate(engine: string): Client> & RawResult & never; /** @deprecated */ imeActivate

(engine: string): Client

& never; /** @deprecated */ imeActivated(): Client> & RawResult & never; /** @deprecated */ imeActivated

(): Client

; /** @deprecated */ imeActiveEngine(): Client> & string & never; /** @deprecated */ imeActiveEngine

(): Client

; /** @deprecated */ imeAvailableEngines(): Client> & RawResult & never; /** @deprecated */ imeAvailableEngines

(): Client

; /** @deprecated */ imeDeactivated(): Client> & RawResult & never; /** @deprecated */ imeDeactivated

(): Client

; init(capabilities?: DesiredCapabilities): Client> & RawResult; init

(capabilities?: DesiredCapabilities): Client

; /** @deprecated in favour of Actions.keyDown */ keys(value: string | string[]): Client> & RawResult & never; /** @deprecated in favour of Actions.keyDown */ keys

(value: string | string[]): Client

; /** @deprecated */ localStorage(): Client> & RawResult; /** @deprecated */ localStorage

(): Client

; /** @deprecated */ localStorage( method: Method, key?: string ): Client> & RawResult & never; /** @deprecated */ localStorage( method: Method, key?: string ): Client> & RawResult & never; /** @deprecated */ localStorage

( method: Method, key?: string | StorageItems ): Client

; /** @deprecated */ localStorageSize(): Client> & RawResult & never; /** @deprecated */ localStorageSize

(): Client

; /** @deprecated in favour of elementIdRect */ location(type: GeoLocation): Client> & RawResult & never; /** @deprecated in favour of elementIdRect */ location

(type: GeoLocation): Client

; /** @deprecated */ log(type: LoggingPreferences): Client> & never; /** @deprecated */ log

(type: LoggingPreferences): Client

; /** @deprecated */ logTypes(): Client> & RawResult & never; /** @deprecated */ logTypes

(): Client

; /** @deprecated in favour of Actions.pointerMove */ moveTo( id: ElementId, xoffset: number, yoffset: number ): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerMove */ moveTo( xoffset: number, yoffset: number ): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerMove */ moveTo

(id: ElementId): Client

; /** @deprecated in favour of Actions.pointerMove */ moveTo

( id: ElementId, xoffset: number, yoffset: number ): Client

; refresh(): Client> & RawResult; refresh

(): Client

; screenshot(): Client> & RawResult; session

(): Client

; session( action?: Method, sessionId?: string ): Client> & RawResult; session

(action?: Method): Client

; session

( action?: Method, sessionId?: string ): Client

& null; /** @deprecated */ sessions(): Client> & RawResult & never; /** @deprecated */ sessions

(): Client

; /** @deprecated */ sessionStorage(): Client> & RawResult & never; /** @deprecated */ sessionStorage

(): Client

; /** @deprecated */ sessionStorage(method: Method): Client> & RawResult & never; /** @deprecated */ sessionStorage(method: Method): Client> & RawResult & never; /** @deprecated */ sessionStorage

(method: Method): Client

; /** @deprecated */ sessionStorage( method: Method, key: string ): Client> & RawResult & never; /** @deprecated */ sessionStorage( method: Method, key: string ): Client> & RawResult & never; /** @deprecated */ sessionStorage

( method: Method, key: string ): Client

; /** @deprecated */ sessionStorage( method: Method, key: StorageItems ): Client> & RawResult; /** @deprecated */ sessionStorage

( method: Method, key: StorageItems ): Client

; /** @deprecated */ sessionStorageSize(): Client> & RawResult & never; /** @deprecated */ sessionStorageSize

(): Client

; source(): Client> & RawResult; source

(): Client

; status(): Client> & RawResult; status(): Client; /** @deprecated */ submit(id: ElementId): Client> & RawResult & never; /** @deprecated */ submit

(id: ElementId): Client

; timeouts

(type: Timeouts, ms: number): Client> & RawResult; /** @deprecated in favour of timeouts */ timeoutsAsyncScript(ms: number): Client> & RawResult & never; /** @deprecated in favour of timeouts */ timeoutsAsyncScript

(ms: number): Client

; /** @deprecated in favour of timeouts */ timeoutsImplicitWait(ms: number): Client> & RawResult & never; /** @deprecated in favour of timeouts */ timeoutsImplicitWait

(ms: number): Client

; url(): Client> & RawResult; url(url: string): Client> & RawResult; url

(url?: string): Client

; title(): Client> & RawResult; title

(): Client

; /** @deprecated in favour of Actions.pointerDown */ touchClick(id: ElementId): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerDown */ touchClick

(id: ElementId): Client

; /** @deprecated in favour of Actions.pointerDown */ touchDown( xoffset: number, yoffset: number ): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerDown */ touchDown

( xoffset: number, yoffset: number ): Client

; /** @deprecated in favour of Actions.perform */ touchFlick( id: ElementId, xoffset: number, yoffset: number, speed: number ): Client> & RawResult & never; /** @deprecated in favour of Actions.perform */ touchFlick

( id: ElementId, xoffset: number, yoffset: number, speed: number ): Client

; /** @deprecated in favour of Actions.perform */ touchLongClick(id: ElementId): Client> & RawResult & never; /** @deprecated in favour of Actions.perform */ touchLongClick

(id: ElementId): Client

; /** @deprecated in favour of Actions.pointerMove */ touchMove( xoffset: number, yoffset: number ): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerMove */ touchMove

( xoffset: number, yoffset: number ): Client

; /** @deprecated in favour of Actions.perform */ touchScroll( id: ElementId, xoffset: number, yoffset: number, ): Client> & RawResult & never; /** @deprecated in favour of Actions.perform */ touchScroll

( id: ElementId, xoffset: number, yoffset: number, ): Client

; /** @deprecated in favour of Actions.pointerUp */ touchUp( xoffset: number, yoffset: number, ): Client> & RawResult & never; /** @deprecated in favour of Actions.pointerUp */ touchUp

( xoffset: number, yoffset: number, ): Client

; window(windowHandle?: string): Client> & RawResult; window

(windowHandle?: string): Client

; windowHandle(): Client> & RawResult; windowHandle

(): Client

; windowHandleFullscreen(): Client> & RawResult; windowHandleFullscreen

(): Client

; windowHandleMaximize(): Client> & RawResult; windowHandleMaximize

(): Client

; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition( windowHandle?: string, position?: Position ): Client> & RawResult & never; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition( position: Position ): Client> & RawResult & never; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition

( windowHandle?: string, position?: Position ): Client

; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition

( position: Position ): Client

; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize( windowHandle?: string, dimension?: Size ): Client> & RawResult & never; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize( dimension: Size ): Client> & RawResult & never; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize

( windowHandle?: string, dimension?: Size ): Client

; /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize

( dimension?: Size ): Client

; /** @deprecated */ windowHandles(): Client> & RawResult & never; /** @deprecated */ windowHandles

(): Client

& never; } // State interface Client { hasFocus(selector?: string): Client & boolean; hasFocus

(selector?: string): Client

; isEnabled(selector?: string): Client & boolean; isEnabled

(selector?: string): Client

; isExisting(selector?: string): Client & boolean; isExisting

(selector?: string): Client

; isSelected(selector?: string): Client & boolean; isSelected

(selector?: string): Client

; isVisible(selector?: string): Client & boolean; isVisible

(selector?: string): Client

; isVisibleWithinViewport(selector?: string): Client & boolean; isVisibleWithinViewport

(selector?: string): Client

; } // Utility interface Client { $(selector: string): Client> & RawResult; $

(selector: string): Client

; $$(selector: string): Array>> & Array>; $$

(selector: string): Client

; addCommand( commandName: string, customMethod: (...args: any[]) => void, overwrite?: boolean ): Client & undefined; addCommand

( commandName: string, customMethod: (...args: any[]) => void, overwrite?: boolean ): Client

; call

(callback: () => void): Client

& any; chooseFile( selector: string, localPath: string ): Client & undefined; chooseFile(localPath: string): Client; chooseFile

( selector: string, localPath: string ): Client

; chooseFile

(localPath: string): Client

; debug(): Client; debug

(): Client

; end(): Client; end

(): Client

; endAll(): Client; endAll

(): Client

; getCommandHistory(): Client & CommandHistoryEntry[]; getCommandHistory

(): Client

; pause(milliseconds: number): Client; pause

(milliseconds: number): Client

; reload(): Client & string[]; reload

(): Client

; saveScreenshot(filename?: string): Client & Buffer; saveScreenshot

(filename?: string): Client

; scroll(selector?: string): Client> & RawResult; scroll( selector: string, xoffset: number, yoffset: number ): Client> & RawResult; scroll( xoffset: number, yoffset: number ): Client> & RawResult; scroll

(selector?: string): Client

; scroll

( selector: string, xoffset: number, yoffset: number ): Client

; scroll

( xoffset: number, yoffset: number ): Client

; uploadFile(localPath: string): Client> & RawResult; uploadFile

(localPath: string): Client

; waitForEnabled( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForEnabled( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForEnabled

(selector?: string): Client

; waitForEnabled

( selector: string, milliseconds?: number, ): Client

; waitForEnabled

(milliseconds?: number): Client

; waitForEnabled

( selector: string, milliseconds?: number, reverse?: boolean ): Client

; waitForEnabled

( milliseconds?: number, reverse?: boolean ): Client

; waitForExist( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForExist( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForExist

(selector?: string): Client

; waitForExist

( selector: string, milliseconds?: number ): Client

; waitForExist

(milliseconds: number): Client

; waitForExist

( selector: string, milliseconds?: number, reverse?: boolean ): Client

; waitForExist

( milliseconds: number, reverse?: boolean ): Client

; waitForSelected( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForSelected( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForSelected

(selector?: string): Client

; waitForSelected

( selector: string, milliseconds?: number ): Client

; waitForSelected

(milliseconds: number): Client

; waitForSelected

( selector: string, milliseconds?: number, reverse?: boolean ): Client

; waitForSelected

( milliseconds?: number, reverse?: boolean ): Client

; waitForText( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForText( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForText

(selector?: string): Client

; waitForText

( selector: string, milliseconds?: number ): Client

; waitForText

(milliseconds?: number): Client

; waitForText

( selector: string, milliseconds?: number, reverse?: boolean ): Client

; waitForText

( milliseconds?: number, reverse?: boolean ): Client

; waitForValue( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForValue( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForValue

(selector?: string): Client

; waitForValue

( selector: string, milliseconds?: number ): Client

; waitForValue

(milliseconds?: number): Client

; waitForValue

( selector: string, milliseconds?: number, reverse?: boolean, ): Client

; waitForValue

( milliseconds?: number, reverse?: boolean, ): Client

; waitForVisible( selector: string, milliseconds?: number, reverse?: boolean ): Client & boolean; waitForVisible( milliseconds?: number, reverse?: boolean ): Client & boolean; waitForVisible

(selector?: string): Client

; waitForVisible

( selector: string, milliseconds?: number ): Client

; waitForVisible

(milliseconds?: number): Client

; waitForVisible

( selector: string, milliseconds?: number, reverse?: boolean ): Client

; waitForVisible

( milliseconds?: number, reverse?: boolean ): Client

; waitUntil( condition: () => boolean | Promise | Client> & RawResult, timeout?: number, timeoutMsg?: string, interval?: number ): Client & any; waitUntil

( condition: () => boolean | Promise | Client> & RawResult, timeout?: number, timeoutMsg?: string, interval?: number ): Client

; } // Window interface Client { close(windowHandle?: string): Client> & RawResult; close

(windowHandle?: string): Client

; getCurrentTabId(): Client & string; getCurrentTabId

(): Client

; getTabIds(): Client & string[]; getTabIds

(): Client

; getViewportSize(): Client & Size; getViewportSize(dimension: string): Client & number; getViewportSize

(dimension?: string): Client

; newWindow( url: string, windowName: string, windowFeatures: string ): Client> & RawResult; newWindow

( url: string, windowName: string, windowFeatures: string ): Client

; setViewportSize( size: Size, type?: boolean ): Client & undefined; setViewportSize

( size: Size, type?: boolean ): Client

; switchTab(windowHandle?: string): Client> & RawResult; switchTab

(windowHandle?: string): Client

; } const VERSION: string; } declare var browser: WebdriverIO.Client; declare module "webdriverio" { export = WebdriverIO; }