import type { BrowserSession } from './BrowserSession.js'; /** Desktop / DevTools failures safe to expose across CLI and embedders. */ export declare class DesktopBrowserError extends Error { readonly code: 'NEX_BROWSER_UNAVAILABLE' | 'NEX_BROWSER_PROTOCOL'; readonly remediation: string; constructor(code: 'NEX_BROWSER_UNAVAILABLE' | 'NEX_BROWSER_PROTOCOL', remediation: string); } export declare function isDesktopBrowserError(error: unknown): error is DesktopBrowserError; /** Minimal WebSocket surface used by CDP. `ws` and test fakes both satisfy this. */ export interface CdpSocket { readonly readyState: number; on(event: 'open' | 'message' | 'error' | 'close', listener: (data?: unknown) => void): unknown; once(event: 'open' | 'message' | 'error' | 'close', listener: (data?: unknown) => void): unknown; send(data: string): void; close(): void; } export interface CdpWebSocketConstructor { new (url: string): CdpSocket; } export interface InjectBrowserSessionCdpOptions { cdpUrl: string; session: BrowserSession; timeoutMs?: number; fetch?: typeof fetch; WebSocket?: CdpWebSocketConstructor; } /** * Apply a verified cookie session to an existing Chromium DevTools endpoint * and navigate to the instance. Does not close the browser. */ export declare function injectBrowserSessionCdp(options: InjectBrowserSessionCdpOptions): Promise;