import { expectType } from 'tsd' import { $, $$, browser, driver, multiremotebrowser } from '@wdio/globals' import { fn, spyOn, mock, unmock, mocked } from '@wdio/browser-runner' ;(async () => { const elem = await $('foo').getElement() expectType(elem.elementId) const label = await $('foo').$('bar').getComputedLabel() expectType(label) const elems = await $$('foo').getElements() expectType(elems.foundWith) const tagNames = await $$('foo').map((el) => el.getTagName()) expectType(tagNames) const title = await browser.getTitle() expectType(title) const anotherTitle = await driver.getTitle() expectType(anotherTitle) const multiTitle = await multiremotebrowser.getTitle() expectType(multiTitle) expectType(fn) expectType(spyOn) mock('foobar', (importOrig) => { expectType>(importOrig()) return { default: 'foobar' } }) unmock('foobar') expectType<[string][]>(mocked((foo: string) => 'bar').mock.calls) })