import type { CDPSession } from 'puppeteer-core/lib/esm/puppeteer/common/Connection.js';
import type { Protocol } from 'devtools-protocol';
import Interception from './index.js';
import type { Matches, MockOverwrite, MockResponseParams } from './types.js';
type ClientResponse = {
    body: string;
    base64Encoded?: boolean;
};
interface HeaderEntry {
    name: string;
    value: string;
}
type Event = {
    requestId: string;
    request: Matches & {
        mockedResponse: string | Buffer;
    };
    responseStatusCode?: number;
    responseHeaders: HeaderEntry[];
    responseErrorReason?: string;
};
export default class DevtoolsInterception extends Interception {
    private restored;
    static handleRequestInterception(client: CDPSession, mocks: Set<Interception>): (event: Event) => Promise<void | ClientResponse>;
    /**
     * allows access to all requests made with given pattern
     */
    get calls(): Matches[];
    /**
     * Resets all information stored in the `mock.calls` set.
     */
    clear(): void;
    /**
     * Does everything that `mock.clear()` does, and also
     * removes any mocked return values or implementations.
     * Restored mock does not emit events and could not mock responses
     */
    restore(sessionMocks?: Record<string, Set<Interception>>, cdpSessions?: Record<string, CDPSession>): Promise<void>;
    /**
     * Always respond with same overwrite
     * @param {*} overwrites  payload to overwrite the response
     * @param {*} params      additional respond parameters to overwrite
     */
    respond(overwrite: MockOverwrite, params?: MockResponseParams): void;
    /**
     * Respond request once with given overwrite
     * @param {*} overwrites  payload to overwrite the response
     * @param {*} params      additional respond parameters to overwrite
     */
    respondOnce(overwrite: MockOverwrite, params?: MockResponseParams): void;
    /**
     * Abort the request with an error code
     * @param {string} errorCode  error code of the response
     */
    abort(errorReason: Protocol.Network.ErrorReason, sticky?: boolean): void;
    /**
     * Abort the request once with an error code
     * @param {string} errorReason  error code of the response
     */
    abortOnce(errorReason: Protocol.Network.ErrorReason): void;
    private ensureNotRestored;
}
export {};
//# sourceMappingURL=devtools.d.ts.map