/** * Browser abstraction layer types and interfaces */ export interface Link { text: string; url: string; isInternal: boolean; } export interface BrowserLaunchOptions { headless?: boolean; executablePath?: string; args?: string[]; timeout?: number; viewport?: { width: number; height: number; }; } export interface NavigateOptions { timeout?: number; waitUntil?: 'load' | 'domcontentloaded' | 'networkidle'; } export interface PageContent { html: string; text: string; title: string; url: string; } export interface IBrowserAdapter { /** * Launch the browser */ launch(options?: BrowserLaunchOptions): Promise; /** * Navigate to a URL */ navigateTo(url: string, options?: NavigateOptions): Promise; /** * Get page content */ getContent(): Promise; /** * Get all links from the current page */ getLinks(baseUrl?: string): Promise; /** * Take a screenshot */ screenshot(path: string): Promise; /** * Check if browser is launched */ isLaunched(): boolean; /** * Close the browser */ close(): Promise; } export type BrowserType = 'puppeteer' | 'playwright'; //# sourceMappingURL=types.d.ts.map