import net from 'net'; import type { Browser, Page } from 'playwright-core'; declare const DEFAULT_SESSION_NAME = "default"; declare const DEFAULT_DAEMON_IDLE_TIMEOUT_MS = 600000; declare const KEEPALIVE_INTERVAL = 30000; type Json_object = Record; type Tracked_request = { method: string; url: string; resource_type?: string; status?: number; }; type Daemon_request = { id: string; action: string; params?: Json_object; }; type Daemon_response = { id: string; success: boolean; data?: unknown; error?: string; }; type Daemon_state = { browser: Browser | null; page: Page | null; connected: boolean; dom_refs: Map; requests: Map; cdp_endpoint: string; session_name: string; idle_timer: NodeJS.Timeout | null; keepalive_timer: NodeJS.Timeout | null; }; type Unix_transport = { kind: 'unix'; base_dir: string; pid_path: string; socket_path: string; token_path: string; }; type Tcp_transport = { kind: 'tcp'; base_dir: string; host: '127.0.0.1'; pid_path: string; port: number; port_path: string; token_path: string; }; type Daemon_transport = Unix_transport | Tcp_transport; type Path_opts = { daemon_dir?: string; env?: NodeJS.ProcessEnv; home_dir?: string; platform?: NodeJS.Platform; }; type Browser_daemon_opts = { cdp_endpoint: string; session_name?: string; idle_timeout_ms?: number; daemon_dir?: string; env?: NodeJS.ProcessEnv; home_dir?: string; }; type Browser_daemon_deps = { clear_interval?: typeof clearInterval; clear_timeout?: typeof clearTimeout; connect_over_cdp?: (cdp_endpoint: string) => Promise; create_server?: (listener?: (socket: net.Socket) => void) => net.Server; pid?: () => number; set_interval?: typeof setInterval; set_timeout?: typeof setTimeout; }; declare const normalize_session_name: (session_name: string | undefined) => string; declare const parse_idle_timeout: (raw: string | undefined) => number | undefined; declare const get_daemon_base_dir: (opts?: Path_opts) => string; declare const get_port_for_session: (session_name: string) => number; declare const get_daemon_transport: (session_name: string, opts?: Path_opts) => Daemon_transport; declare class BrowserDaemon { readonly state: Daemon_state; private readonly active_contexts; private readonly active_pages; private readonly auth_token; private readonly deps; private readonly idle_timeout_ms; private readonly request_ids; private readonly transport; private active_requests; private request_counter; private server; private stop_promise; constructor(opts: Browser_daemon_opts, deps?: Browser_daemon_deps); get_transport(): Daemon_transport; is_running(): boolean; start(): Promise; stop(): Promise; handle_request(request: Daemon_request): Promise; private begin_activity; private end_activity; private clear_idle_timer; private schedule_idle_timer; private clear_keepalive; private start_keepalive; private stop_internal; private cleanup_transport_files; private handle_socket; private process_line; private is_authorized; private reject_unauthorized; private execute_request; private handle_navigate; private switch_cdp_endpoint; private handle_history_navigation; private handle_reload; private handle_cookies; private create_navigation_result; private handle_snapshot; private handle_screenshot; private handle_network; private handle_status; private safe_page_title; private ensure_connected; private track_context; private track_page; private track_request; private track_response; private trim_tracked_requests; private close_browser; } declare const create_daemon_from_env: (env?: NodeJS.ProcessEnv) => BrowserDaemon; declare const start_daemon_from_env: (env?: NodeJS.ProcessEnv) => Promise; export { BrowserDaemon, DEFAULT_DAEMON_IDLE_TIMEOUT_MS, KEEPALIVE_INTERVAL, DEFAULT_SESSION_NAME, create_daemon_from_env, get_daemon_base_dir, get_daemon_transport, get_port_for_session, normalize_session_name, parse_idle_timeout, start_daemon_from_env, }; export type { Browser_daemon_deps, Browser_daemon_opts, Daemon_request, Daemon_response, Daemon_state, Daemon_transport, Tracked_request, }; //# sourceMappingURL=daemon.d.ts.map