/**
 * Browser Automation tools for Clawx.
 *
 * Uses Playwright to control a real browser — navigate, click, type, screenshot,
 * extract content, and run JavaScript. Enables agents to interact with web apps:
 * sign in, fill forms, navigate dashboards, scrape dynamic content, etc.
 *
 * Playwright browsers are installed on first use via `npx playwright install chromium`.
 * A single browser instance is shared across tool calls and reused between invocations.
 */
import type { AgentTool } from "../core/types.js";
export interface SnapshotElement {
    index: number;
    tag: string;
    type: string;
    text: string;
    name: string;
    id: string;
    placeholder: string;
    href: string;
    ariaLabel: string;
    selector: string;
    rect: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
}
declare const BrowserOpenSchema: import("@sinclair/typebox").TObject<{
    url: import("@sinclair/typebox").TString;
    wait_until: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export interface BrowserOpenDetails {
    url: string;
    title: string;
    durationMs: number;
}
export declare function createBrowserOpenTool(): AgentTool<typeof BrowserOpenSchema, BrowserOpenDetails>;
declare const BrowserClickSchema: import("@sinclair/typebox").TObject<{
    element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    text: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    x: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    y: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>;
export declare function createBrowserClickTool(): AgentTool<typeof BrowserClickSchema, any>;
declare const BrowserTypeSchema: import("@sinclair/typebox").TObject<{
    element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    placeholder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    text: import("@sinclair/typebox").TString;
    clear: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    press_enter: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>;
export declare function createBrowserTypeTool(): AgentTool<typeof BrowserTypeSchema, any>;
declare const BrowserScreenshotSchema: import("@sinclair/typebox").TObject<{
    full_page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare function createBrowserScreenshotTool(): AgentTool<typeof BrowserScreenshotSchema, any>;
declare const BrowserNavigateSchema: import("@sinclair/typebox").TObject<{
    action: import("@sinclair/typebox").TString;
}>;
export declare function createBrowserNavigateTool(): AgentTool<typeof BrowserNavigateSchema, any>;
declare const BrowserExtractSchema: import("@sinclair/typebox").TObject<{
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    max_length: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>;
export declare function createBrowserExtractTool(): AgentTool<typeof BrowserExtractSchema, any>;
declare const BrowserEvalSchema: import("@sinclair/typebox").TObject<{
    javascript: import("@sinclair/typebox").TString;
}>;
export declare function createBrowserEvalTool(): AgentTool<typeof BrowserEvalSchema, any>;
declare const BrowserSnapshotSchema: import("@sinclair/typebox").TObject<{
    scroll_to: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare function createBrowserSnapshotTool(): AgentTool<typeof BrowserSnapshotSchema, any>;
declare const BrowserCloseSchema: import("@sinclair/typebox").TObject<{}>;
export declare function createBrowserCloseTool(): AgentTool<typeof BrowserCloseSchema, any>;
/** All browser tool names for use in whitelists */
export declare const BROWSER_TOOL_NAMES: readonly ["browser_open", "browser_snapshot", "browser_click", "browser_type", "browser_screenshot", "browser_navigate", "browser_extract", "browser_eval", "browser_close"];
/** Create all browser tools */
export declare function createAllBrowserTools(): (AgentTool<import("@sinclair/typebox").TObject<{
    url: import("@sinclair/typebox").TString;
    wait_until: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>, BrowserOpenDetails> | AgentTool<import("@sinclair/typebox").TObject<{
    element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    text: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    x: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    y: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    placeholder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    text: import("@sinclair/typebox").TString;
    clear: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    press_enter: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    full_page: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    action: import("@sinclair/typebox").TString;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    selector: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    max_length: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    javascript: import("@sinclair/typebox").TString;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{
    scroll_to: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>, any> | AgentTool<import("@sinclair/typebox").TObject<{}>, any>)[];
export {};
//# sourceMappingURL=browserTools.d.ts.map