/**
 * browser_use — unified browser AgentTool.
 *
 * Modes: command | pipeline | inspect | close.
 * Replaces the 14 fine-grained browser_* tools with a single entry point.
 */
import type { AgentTool } from '@earendil-works/pi-agent-core';
import type { Config } from '../../../../config/schema.js';
import type { BrowserManager } from '../../../../browser/manager.js';
import type { CdpSupervisor } from '../../../../browser/cdp-supervisor.js';
import type { Page } from 'playwright-core';
import type { BrowserActionContext, BrowserActionResult } from '../../../../browser/actions/types.js';
import type { BrowserNotReadyError } from '../../../../browser/readiness.js';
export interface CreateBrowserUseToolDeps {
    getManager: () => BrowserManager;
    getPageForTask: () => Promise<Page>;
    getTaskId: () => string;
    getConfig: () => Config | undefined;
    getSupervisor?: () => CdpSupervisor | undefined;
    notifyBrowserPageClosed?: (taskId: string) => void;
    /**
     * Preflight readiness check. Returns `null` when the configured backend is
     * usable, otherwise a structured hint the chat surface renders as a setup
     * card. Cache the result upstream (~30s) so back-to-back calls don't reprobe.
     */
    getReadiness?: () => Promise<BrowserNotReadyError | null>;
    /** Pipeline runner (injected to avoid circular deps; lazy-loaded if not provided). */
    runPipeline?: (yaml: string, args: Record<string, unknown>, ctx: BrowserActionContext, dryRun: boolean) => Promise<BrowserActionResult>;
}
export declare function createBrowserUseTool(deps: CreateBrowserUseToolDeps): AgentTool<any, any>;
