import {type KeyboardKey} from './types/KeyboardKey'; import {type DriverContext} from './types-internal'; export type MapFn = (uni: UniDriver, idx?: number, array?: UniDriver[]) => Promise; export type FilterFn = (uni: UniDriver, idx?: number, array?: UniDriver[]) => Promise; export type UniDriverList = { at: (idx: number) => UniDriver; text: () => Promise; count: () => Promise; map: (fn: MapFn) => Promise; filter: (fn: FilterFn) => UniDriverList; find: (fn: FilterFn) => UniDriver; findIndex: (fn: FilterFn) => Promise; some: (fn: FilterFn) => Promise; every: (fn: FilterFn) => Promise; /** DEPRECATED SECTION **/ /** @@deprecated Use at() */ get: (idx: number) => UniDriver; /** @@deprecated Use type-guard functions */ type?: string; }; /** @deprecated Use EnterTextOptions */ export type EnterValueOptions = { delay?: number /* Milliseconds */; // Time to wait between key presses . shouldClear?: boolean; // Whether to try and clear input value before entering text. (default: true) }; export type EnterTextOptions = { delay?: number /* Milliseconds */; // Time to wait between key presses . clear?: boolean; // Whether to try and clear input value before entering text. (default: true) }; export type ClickOptions = { type: 'double'; }; export type UniDriver = { exists: () => Promise; $: (selector: string) => UniDriver; $$: (selector: string) => UniDriverList; s: (selector: string) => UniDriver; ss: (selector: string) => UniDriverList; awaited: (timeoutMs?: number) => UniDriver; text: () => Promise; click: (options?: ClickOptions) => Promise; pressKey: (key: KeyboardKey) => Promise; value: () => Promise; enterText: (value: string, options?: EnterTextOptions) => Promise; attr: (name: string) => Promise; mouse: { moveTo: (to: UniDriver) => Promise; press: () => Promise; release: () => Promise; leave: () => Promise; hover: () => Promise; }; unwrap: () => Promise; hasClass: (name: string) => Promise; prop: (name: string) => Promise; /** DEPRECATED SECTION **/ /** @deprecated use enterText. Implementation has a bug in non e2e adapters, which we keep for backward compatibility. * First triggered change event has the full value instead of first symbol, if delay is used. */ enterValue: (value: string, options?: EnterValueOptions) => Promise; /** * @deprecated Use $ instead. Elements are awaiter by default now. * @description Resolves to a driver of a queried element, * when the element becomes available in the DOM. Rejects if it's not in the DOM during a specific time interval. */ get: ( query: string, options?: { timeout: number /* Milliseconds */; }, ) => Promise>; /** * @deprecated Use $$ instead. Elements are awaiter by default now. * @description Resolves to an array of element drivers matching a provided query, * when any of the elements become available in the DOM. Rejects if no elements appear in the DOM during a specific time interval. */ getAll: ( query: string, options?: { timeout: number /* Milliseconds */; }, ) => Promise>; /** @deprecated in context of e2e use .isPlaywrightUniDriver(uni)/.isPuppeteerUniDriver(uni) + .unwrap() and native element */ getNative: () => Promise; /** @deprecated use mouse.hover() */ hover: () => Promise; /** @deprecated Use .prop() */ _prop: (name: string) => Promise; /** @deprecated Use $/$$/awaited */ wait: (timeout?: number /* Milliseconds */) => Promise; /** @deprecated In context of e2e use .isPlaywrightUniDriver(uni)/.isPuppeteerUniDriver(uni) + .unwrap() and native element */ isDisplayed?: () => Promise; /** @deprecated In context of e2e use .isPlaywrightUniDriver(uni)/.isPuppeteerUniDriver(uni) + .unwrap() and native element */ scrollIntoView?: () => Promise; /** @deprecated Use isXyz from specific adapter packages e.g. .isPuppeteerUniDriver(uni) */ type?: 'react' | 'puppeteer'; };