/** * Zero-dependency Chrome DevTools Protocol client over Node's global WebSocket. * * Connects to the browser-level endpoint (ws://127.0.0.1:/devtools/browser/) * and uses flattened sessions: page-level commands carry a `sessionId` obtained via * Target.attachToTarget({ flatten: true }). No Puppeteer, no npm deps. * * Adapted from the `chrome-use` skill (skills/chrome-use/scripts/lib/cdp.ts). */ import type { CdpClient } from './types.js'; /** Subset of the WHATWG WebSocket the CDP client relies on. */ interface WebSocketLike { readyState: number; send(data: string): void; close(): void; addEventListener(type: string, listener: (ev: unknown) => void, opts?: { once?: boolean; }): void; } /** Factory for a WebSocket; injectable for tests. Defaults to global WebSocket. */ export type WebSocketFactory = (url: string) => WebSocketLike; export declare class Cdp implements CdpClient { private readonly ws; private nextId; private readonly pending; private readonly listeners; private readonly openPromise; private isClosed; private constructor(); /** Connect to a browser-level ws endpoint and resolve once the socket is open. */ static connect(wsEndpoint: string, timeoutMs?: number, wsFactory?: WebSocketFactory): Promise; get connected(): boolean; private onMessage; send(method: string, params?: Record, sessionId?: string): Promise; on(method: string, handler: (params: unknown, sessionId?: string) => void): () => void; close(): void; } export {}; //# sourceMappingURL=cdp.d.ts.map