/** * Browser Tool * * Playwright-based browser automation for MAMA * Migrated from Puppeteer for better stability and multi-browser support */ export interface BrowserToolConfig { /** Headless mode (default: true) */ headless?: boolean; /** Default viewport width */ viewportWidth?: number; /** Default viewport height */ viewportHeight?: number; /** Screenshot output directory */ screenshotDir?: string; /** Browser type: chromium, firefox, webkit (default: chromium) */ browserType?: 'chromium' | 'firefox' | 'webkit'; } export declare class BrowserTool { private config; private browser; private context; private page; constructor(config?: BrowserToolConfig); /** * Launch browser if not already running */ launch(): Promise; /** * Close browser */ close(): Promise; /** * Ensure browser is running */ private ensureBrowser; /** * Navigate to URL */ navigate(url: string): Promise<{ success: boolean; title: string; url: string; }>; /** * Take screenshot */ screenshot(filename?: string): Promise<{ success: boolean; path: string; }>; /** * Take full page screenshot */ screenshotFullPage(filename?: string): Promise<{ success: boolean; path: string; }>; /** * Click element by selector * Playwright auto-waits for element to be actionable */ click(selector: string): Promise<{ success: boolean; }>; /** * Type text into element * Playwright auto-waits for element to be ready */ type(selector: string, text: string): Promise<{ success: boolean; }>; /** * Wait for selector */ waitFor(selector: string, timeout?: number): Promise<{ success: boolean; }>; /** * Get page content (HTML) */ getContent(): Promise<{ success: boolean; html: string; }>; /** * Get page text content */ getText(): Promise<{ success: boolean; text: string; }>; /** * Evaluate JavaScript in page */ evaluate(script: string): Promise<{ success: boolean; result: unknown; }>; /** * Get element text by selector */ getElementText(selector: string): Promise<{ success: boolean; text: string | null; }>; /** * Get all elements matching selector */ queryAll(selector: string): Promise<{ success: boolean; count: number; texts: string[]; }>; /** * Scroll page */ scroll(direction: 'up' | 'down' | 'top' | 'bottom', amount?: number): Promise<{ success: boolean; }>; /** * Press keyboard key */ press(key: string): Promise<{ success: boolean; }>; /** * Go back */ goBack(): Promise<{ success: boolean; }>; /** * Go forward */ goForward(): Promise<{ success: boolean; }>; /** * Reload page */ reload(): Promise<{ success: boolean; }>; /** * Get current URL */ getUrl(): string | null; /** * Check if browser is running */ isRunning(): boolean; /** * Take a PDF of the page (Chromium only) */ pdf(filename?: string): Promise<{ success: boolean; path: string; }>; } export declare function getBrowserTool(config?: BrowserToolConfig): BrowserTool; //# sourceMappingURL=browser-tool.d.ts.map