import { LocalBrowser, Page, RemoteBrowser } from '@agent-infra/browser'; import { ConsoleLogger, AgentEventStream, Tool } from '@tarko/mcp-agent'; /** * Browser initialization options */ export interface GUIAgentOptions { /** browser instance to use */ browser: LocalBrowser | RemoteBrowser; /** The logger instance to use */ logger: ConsoleLogger; /** Whether to run browser in headless mode */ headless?: boolean; /** Scaling factors for coordinates */ factors?: [number, number]; /** Event stream instance for injecting environment info */ eventStream?: AgentEventStream.Processor; } /** * Browser GUI Agent for visual browser automation */ export declare class BrowserGUIAgent { private options; private browser; private browserOperator; private screenWidth?; private screenHeight?; private browserGUIAgentTool; private logger; private factors; private eventStream?; currentScreenshot?: string; /** * Creates a new GUI Agent * @param options - Configuration options */ constructor(options: GUIAgentOptions); /** * Set the event stream instance * @param eventStream - The event stream instance */ setEventStream(eventStream: AgentEventStream.Processor): void; /** * Get the tool definition for GUI Agent browser control */ getTool(): Tool; screenshot(): Promise<{ originalSize: number; screenshotTime: string; compressedSize: number; compressedBase64: string; currentUrl: string | undefined; }>; /** * Hook for starting each agent loop * - Takes a screenshot * - Extracts image dimensions * - Sends the screenshot to the event stream */ onEachAgentLoopStart(eventStream: AgentEventStream.Processor, isReplaySnapshot?: boolean): Promise; /** * Add data URI prefix to base64 image if not present */ private addBase64ImagePrefix; /** * Parse operation string into a structured operation object */ private parseAction; /** * Extract width and height information from base64 encoded image */ private extractImageDimensionsFromBase64; /** * Get access to the underlying Puppeteer page * This allows custom browser tools to be implemented * without relying on the MCP Browser server */ getPage(): Promise; } //# sourceMappingURL=browser-gui-agent.d.ts.map