/** * Leaper Agent – Browser Tool * * Browser automation with Playwright (headless Chromium) and a fetch fallback. * Translates Python tools/browser_tool.py (simplified, no cloud providers). */ export interface BrowserSession { id: string; url: string; title: string; startedAt: Date; active: boolean; } export interface BrowserResult { success: boolean; content?: string; screenshotBase64?: string; error?: string; url?: string; title?: string; } export interface NavigateOptions { /** Milliseconds. Default: 30 000. */ timeout?: number; waitUntil?: 'load' | 'domcontentloaded' | 'networkidle'; } export interface ExtractOptions { /** CSS selector, default: body */ selector?: string; asMarkdown?: boolean; } export declare function isSafeUrl(url: string): boolean; export declare class BrowserManager { private sessions; private activePage; private browser; private playwrightAvailable; private playwright; constructor(); /** Start a browser session; lazily launches Playwright or falls back to fetch. */ startSession(sessionId?: string): Promise; /** Get an active session by id. */ getSession(sessionId: string): BrowserSession | undefined; /** Close a session. */ closeSession(sessionId: string): Promise; /** Close all sessions and release the browser. */ closeAll(): Promise; hasPlaywright(): boolean; getPage(): unknown; updateSession(sessionId: string, url: string, title: string): void; } export declare const browserManager: BrowserManager; /** Navigate to a URL. Uses Playwright when available, falls back to fetch. */ export declare function browserNavigate(url: string, opts?: NavigateOptions): Promise; /** Click a CSS selector element (Playwright only). */ export declare function browserClick(selector: string, _sessionId?: string): Promise; /** Type text into a selector (Playwright only). */ export declare function browserType(selector: string, text: string, _sessionId?: string): Promise; /** Take a screenshot as base64 PNG (Playwright only). */ export declare function browserScreenshot(_sessionId?: string): Promise; /** Extract text content from the current page. Falls back to fetching the current URL. */ export declare function browserExtract(opts?: ExtractOptions, sessionId?: string): Promise; /** Close the browser session. */ export declare function browserClose(sessionId?: string): Promise; //# sourceMappingURL=browser.d.ts.map