import type { Browser } from "../types";
import type { CDPRequest, CDPSessionId } from "./types";
import { CDPConnection } from "./connection";
import { CDPTarget } from "./domains/target";
import { CDPProfiler } from "./domains/profiler";
import { CDPDebugger } from "./domains/debugger";
import { CDPRuntime } from "./domains/runtime";
import { CDPDom } from "./domains/dom";
import { CDPCss } from "./domains/css";
import { CDPNetwork } from "./domains/network";
import { CDFetch } from "./domains/fetch";
import { CDPPage } from "./domains/page";
export declare class CDP {
    private readonly _connection;
    readonly target: CDPTarget;
    readonly profiler: CDPProfiler;
    readonly debugger: CDPDebugger;
    readonly runtime: CDPRuntime;
    readonly dom: CDPDom;
    readonly css: CDPCss;
    readonly network: CDPNetwork;
    readonly fetch: CDFetch;
    readonly page: CDPPage;
    static create(browser: Browser): Promise<CDP | null>;
    constructor(connection: CDPConnection);
    request<T = Record<string, unknown>>(method: CDPRequest["method"], params?: CDPRequest["params"] | null, cdpSessionId?: CDPSessionId | null): Promise<T>;
    close(): void;
    private _onEventMessage;
}
