jpglens
Version:
🔍 Universal AI-Powered UI Testing - See your interfaces through the lens of intelligence
110 lines • 3.21 kB
TypeScript
/**
* 🔍 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