UNPKG

jpglens

Version:

🔍 Universal AI-Powered UI Testing - See your interfaces through the lens of intelligence

110 lines 3.21 kB
/** * 🔍 jpglens - Screenshot Capture System * Universal AI-Powered UI Testing * * @author Taha Bahrami (Kaito) * @license MIT */ import { ScreenshotData } from './types.js'; /** * Universal screenshot capture and management system * Handles screenshots from multiple testing frameworks */ export declare class ScreenshotCapture { private outputDir; constructor(outputDir?: string); /** * Capture screenshot from Playwright page */ capturePlaywrightPage(page: any, options?: { fullPage?: boolean; animations?: 'disabled' | 'allow'; mask?: any[]; quality?: number; }): Promise<ScreenshotData>; /** * Capture screenshot from Selenium WebDriver */ captureSeleniumDriver(driver: any): Promise<ScreenshotData>; /** * Load screenshot from Cypress (which saves to filesystem) */ loadFromPath(filepath: string, metadata: { width: number; height: number; devicePixelRatio: number; timestamp: string; }): Promise<ScreenshotData>; /** * Create screenshot data from buffer */ createFromBuffer(buffer: Buffer, metadata: { width: number; height: number; devicePixelRatio?: number; timestamp?: string; }): ScreenshotData; /** * Capture multiple screenshots for user journey * Returns them in a zip-like structure for batch AI analysis */ captureJourneyScreenshots(captureFunction: () => Promise<ScreenshotData>, stages: string[]): Promise<{ screenshots: ScreenshotData[]; zipPath?: string; }>; /** * Create a zip file containing all screenshots for batch analysis * This enables better contextual analysis across user journey stages */ private createScreenshotZip; /** * Optimize screenshot for AI analysis * Reduces file size while maintaining quality for AI vision models */ optimizeForAI(screenshot: ScreenshotData): Promise<ScreenshotData>; /** * Add visual annotations to screenshot for better AI analysis */ annotateScreenshot(screenshot: ScreenshotData, annotations: { criticalElements?: { selector: string; label: string; }[]; userFlow?: { x: number; y: number; step: number; }[]; focusAreas?: { x: number; y: number; width: number; height: number; label: string; }[]; }): Promise<ScreenshotData>; /** * Convert screenshot to base64 for API transmission */ toBase64(screenshot: ScreenshotData): string; /** * Get screenshot file size in bytes */ getFileSize(screenshot: ScreenshotData): number; /** * Validate screenshot data */ validateScreenshot(screenshot: ScreenshotData): { valid: boolean; errors: string[]; }; /** * Ensure output directory exists */ private ensureOutputDir; /** * Clean up old screenshots to save disk space */ cleanup(olderThanHours?: number): Promise<void>; } //# sourceMappingURL=screenshot-capture.d.ts.map