import type { local } from 'webdriver';
import type { Response as MockResponse } from './utils/interception/types.js';
/**
 * One network mock per multi-remote instance. Mutating methods run on every
 * instance. Read `calls` from a single mock via `getInstance`.
 */
export declare class MultiRemoteMock implements WebdriverIO.MultiRemoteMock {
    #private;
    readonly instances: string[];
    readonly isMultiRemote: true;
    constructor(instanceNames: readonly string[], mocks: readonly WebdriverIO.Mock[]);
    /**
     * The mock registered on one instance.
     */
    getInstance(name: string): WebdriverIO.Mock;
    abort(...args: Parameters<WebdriverIO.Mock['abort']>): this;
    abortOnce(...args: Parameters<WebdriverIO.Mock['abortOnce']>): this;
    clear(...args: Parameters<WebdriverIO.Mock['clear']>): this;
    reset(...args: Parameters<WebdriverIO.Mock['reset']>): this;
    redirect(...args: Parameters<WebdriverIO.Mock['redirect']>): this;
    redirectOnce(...args: Parameters<WebdriverIO.Mock['redirectOnce']>): this;
    request(...args: Parameters<WebdriverIO.Mock['request']>): this;
    requestOnce(...args: Parameters<WebdriverIO.Mock['requestOnce']>): this;
    respond(...args: Parameters<WebdriverIO.Mock['respond']>): this;
    respondOnce(...args: Parameters<WebdriverIO.Mock['respondOnce']>): this;
    on(event: 'request', callback: (request: local.NetworkBeforeRequestSentParameters) => void): this;
    on(event: 'match', callback: (match: local.NetworkBeforeRequestSentParameters) => void): this;
    on(event: 'continue', callback: (requestId: string) => void): this;
    on(event: 'fail', callback: (requestId: string) => void): this;
    on(event: 'overwrite', callback: (response: MockResponse) => void): this;
    restore(...args: Parameters<WebdriverIO.Mock['restore']>): Promise<this>;
    waitForResponse(...args: Parameters<WebdriverIO.Mock['waitForResponse']>): Promise<Awaited<ReturnType<WebdriverIO.Mock['waitForResponse']>>[]>;
}
//# sourceMappingURL=multiRemoteMock.d.ts.map