import { WebSocket } from "ws";
export interface CDPEvent {
    method: string;
    params: Record<string, unknown>;
    timestamp: number;
    sessionId?: string;
}
export interface CDPConnection {
    ws: WebSocket;
    sessionId: string | null;
    nextId: number;
}
export declare class CDPMonitor {
    private browser;
    private connection;
    private debugPort;
    private eventHandlers;
    private profileDir;
    private screenshotDir;
    private logger;
    private debug;
    private browserPath?;
    private isShuttingDown;
    private pendingRequests;
    private networkIdleTimer;
    private pluginReactScan;
    private cdpUrl;
    constructor(profileDir: string, screenshotDir: string, logger: (source: string, message: string) => void, debug?: boolean, browserPath?: string, pluginReactScan?: boolean);
    private debugLog;
    start(): Promise<void>;
    getCdpUrl(): string | null;
    private createLoadingPage;
    private setupRuntimeCrashMonitoring;
    private launchChrome;
    private connectToCDP;
    private sendCDPCommand;
    private enableCDPDomains;
    private setupEventHandlers;
    private onCDPEvent;
    private handleCDPMessage;
    navigateToApp(port: string): Promise<void>;
    private setupInteractionTracking;
    private startInteractionPolling;
    private scheduleNetworkIdleScreenshot;
    private takeScreenshot;
    executeInteraction(interaction: {
        type: string;
        coordinates?: {
            x: number;
            y: number;
        };
        key?: string;
        code?: string;
        modifiers?: Record<string, unknown>;
        to?: {
            x: number;
            y: number;
        };
        from?: {
            x: number;
            y: number;
        };
    }): Promise<void>;
    shutdown(): Promise<void>;
}
//# sourceMappingURL=cdp-monitor.d.ts.map