/**
 * 🔍 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