import type { Timeouts } from '@wdio/protocols';
/**
 *
 * Sets the timeouts associated with the current session, timeout durations control such
 * behaviour as timeouts on script injection, document navigation, and element retrieval.
 * For more information and examples, see [timeouts guide](https://webdriver.io/docs/timeouts#selenium-timeouts).
 *
 * :::info
 *
 * It is not recommended to set `implicit` timeouts as they impact WebdriverIO's behavior
 * and can cause errors in certain commands, e.g. `waitForExist` with reverse flag.
 *
 * :::
 *
 * WebDriver BiDi has no script timeout, so in a BiDi session WebdriverIO applies the
 * `script` timeout to [`execute`](/docs/api/browser/execute) itself: a script that does not
 * finish in time fails with a `script timeout` error, as with WebDriver Classic. Every BiDi
 * command also stops after [`bidiResponseTimeout`](/docs/configuration#bidiresponsetimeout)
 * (180 seconds by default), so a longer `script` timeout needs a longer `bidiResponseTimeout` too.
 *
 * <example>
    :setTimeout.js
    it('should change timeout duration for session with long code duration', async () => {
        await browser.setTimeout({
            'pageLoad': 10000,
            'script': 60000
        });
        // Execute code which takes a long time
        await browser.execute(async () => {
            console.log('Wake me up before you go!');
            await new Promise((resolve) => setTimeout(resolve, 59000));
        });
    });
 * </example>
 *
 * @param {Timeouts}  timeouts            Object containing session timeout values
 * @param {Number=}   timeouts.implicit  Time in milliseconds to retry the element location strategy when finding an element.
 * @param {Number=}   timeouts.pageLoad  Time in milliseconds to wait for the document to finish loading.
 * @param {Number=}   timeouts.script    Scripts injected with [`execute`](https://webdriver.io/docs/api/browser/execute) will run until they hit the script timeout duration, which is also given in milliseconds. Async functions are awaited and count against this timeout.
 * @see https://w3c.github.io/webdriver/#set-timeouts
 *
 */
export declare function setTimeout(this: WebdriverIO.Browser, timeouts: Partial<Timeouts>): Promise<void>;
//# sourceMappingURL=setTimeout.d.ts.map