import { ConsoleLogger, Tool, Client } from '@tarko/mcp-agent'; import { BrowserGUIAgent } from '../browser-gui-agent'; import { BrowserManager } from '../browser-manager'; /** * BrowserControlStrategy - Interface for browser control strategies * * Defines the contract that all browser control strategies must implement */ export interface BrowserControlStrategy { /** * Set the MCP Browser client for DOM-based operations * @param client MCP client for browser operations */ setBrowserClient(client: Client): void; /** * Set the browser manager instance * @param browserManager */ setBrowserManager(browserManager: BrowserManager): void; /** * Set the browser GUI Agent for vision-based operations * @param browserGUIAgent GUI Agent instance */ setBrowserGUIAgent(browserGUIAgent: BrowserGUIAgent): void; /** * Register browser control tools based on the strategy * @param registerToolFn Function to register a tool with the agent * @returns Array of registered tool names */ registerTools(registerToolFn: (tool: Tool) => void): Promise; /** * Get the name of the strategy for logging purposes */ getStrategyName(): string; } /** * AbstractBrowserControlStrategy - Base implementation for browser control strategies * * Provides common functionality and state management for all strategies */ export declare abstract class AbstractBrowserControlStrategy implements BrowserControlStrategy { protected browserClient?: Client; protected browserGUIAgent?: BrowserGUIAgent; protected browserManager?: BrowserManager; protected logger: ConsoleLogger; protected registeredTools: Set; constructor(logger: ConsoleLogger); /** * Set the MCP Browser client */ setBrowserClient(client: Client): void; setBrowserManager(browserManager: BrowserManager): void; /** * Set the GUI Agent */ setBrowserGUIAgent(browserGUIAgent: BrowserGUIAgent): void; /** * Register browser control tools * Each strategy must implement this method */ abstract registerTools(registerToolFn: (tool: Tool) => void): Promise; /** * Get the name of the strategy for logging purposes */ getStrategyName(): string; /** * Register selected MCP Browser tools * Helper method for strategies that use MCP Browser */ protected registerMCPBrowserTools(registerToolFn: (tool: Tool) => void, toolNames: string[]): Promise; } //# sourceMappingURL=base-strategy.d.ts.map