/**
 * WebDriver BiDi has no script timeout (https://github.com/w3c/webdriver-bidi/issues/199),
 * so `execute` gives the session's `script` timeout to the BiDi command
 * (`BIDI_SCRIPT_TIMEOUT` of the `webdriver` package), as a WebDriver Classic
 * driver applies it to `executeScript`.
 */
/**
 * Read the `script` timeout from the session instead of its capabilities.
 */
export declare function markAttachedSession(browser: WebdriverIO.Browser): void;
/**
 * Follow the `script` timeout that `setTimeouts` sets for the session.
 */
export declare function trackScriptTimeout(browser: WebdriverIO.Browser): void;
/**
 * The `script` timeout of the session in milliseconds, or `null` for no limit:
 * the last value set with `browser.setTimeout()`, else the one in the
 * capabilities that the driver returned for a new session. For an attached
 * session (its capabilities come from the user) or without a value there, it
 * reads the timeouts of the session once, else it uses the default of the
 * WebDriver spec.
 */
export declare function scriptTimeoutOf(browser: WebdriverIO.Browser): Promise<number | null>;
/**
 * Appium XCUITest (iOS) starts with a `script` timeout of 0 ms (W3C: 30 s) and
 * ignores `timeouts.script` of the capabilities. Set it when the session starts.
 * An attached session keeps the timeout that it has.
 *
 * TODO: remove when the supported XCUITest drivers start with the W3C default (30 s)
 */
export declare function setIOSScriptTimeout(browser: WebdriverIO.Browser): Promise<void>;
//# sourceMappingURL=scriptTimeout.d.ts.map