import type { CdpSend } from "./snapshot.js"; export type DialogPolicy = "accept" | "dismiss"; export interface ObservedDialog { type: string; message: string; handledWith: DialogPolicy; atMs: number; } export interface ObservedConsole { level: string; text: string; atMs: number; } export interface ObservedRequestFailure { url: string; errorText: string; atMs: number; } export interface ObservedDownload { url: string; fileName: string; atMs: number; } export interface ObservationSnapshot { console: ObservedConsole[]; failedRequests: ObservedRequestFailure[]; downloads: ObservedDownload[]; dialogs: ObservedDialog[]; newTabUrls: string[]; } /** Per-session ring buffers for console output, failed requests, downloads, * dialogs and popup tabs. Dialogs are answered automatically so an unanswered * prompt can never freeze the page. */ export declare class Observations { private readonly limit; dialogPolicy: DialogPolicy; readonly console: ObservedConsole[]; readonly failedRequests: ObservedRequestFailure[]; readonly downloads: ObservedDownload[]; readonly dialogs: ObservedDialog[]; readonly newTabUrls: string[]; constructor(limit?: number, dialogPolicy?: DialogPolicy); recordConsole(level: string, text: string): void; recordFailedRequest(url: string, errorText: string): void; recordDownload(url: string, fileName: string): void; recordDialog(type: string, message: string, handledWith: DialogPolicy): void; recordNewTab(url: string): void; since(afterMs?: number): ObservationSnapshot; clear(): void; } /** Turns on the CDP domains the observation buffers need. * * `Log.enable` alone gives browser-level entries (network failures, security, * deprecations) but NOT the page's own `console.*` calls; those require * `Runtime.enable`, whose presence is a documented automation signal to bot * detectors (rebrowser.net/blog/how-to-fix-runtime-enable-cdp-detection-of- * puppeteer-playwright-and-other-automation-libraries). Callers opt in per * session with `pageConsole`. */ export declare function enableObservation(send: CdpSend, sessionId: string, opts?: { pageConsole?: boolean; }): Promise; //# sourceMappingURL=observe.d.ts.map