/** * Slice 3 — `peaks browser action [args...]` thin wrapper. * * Five supported intents: navigate, click, fill, snapshot, extract. * Each intent invokes EXACTLY ONE Playwright MCP tool call. No auto * snapshots between intents, no retry, no selector caching, no healing. * * Anti-features (per slice 3 spec): * - No retry / circuit-breaker * - No selector caching * - No accessibility tree customization * - No screenshot / video * - No "smart selector healing" * * Selectors are restricted to simple forms (`#id`, `.class`, `tag#id`, * `tag.class`, `tag`). Anything else returns a fall-back error pointing * the caller to the raw MCP. */ export type BrowserIntent = 'navigate' | 'click' | 'fill' | 'snapshot' | 'extract'; export type McpCaller = (tool: string, args: Record) => Promise; export interface BrowserActionArgs { url?: string | undefined; selector?: string | undefined; value?: string | undefined; expression?: string | undefined; } export interface BrowserActionResult { readonly intent: BrowserIntent; readonly ok: boolean; readonly data: unknown; readonly elapsedMs: number; } /** * Run a single browser intent. Throws on validation errors; returns * a structured result on success. */ export declare function runBrowserAction(intent: BrowserIntent, args: BrowserActionArgs, caller: McpCaller): Promise;