import type { Run } from "../types/index.js";
export interface VisualDiffResult {
    scenarioId: string;
    stepNumber: number;
    action: string;
    baselinePath: string;
    currentPath: string;
    diffPercent: number;
    isRegression: boolean;
}
/**
 * Mark a run as the visual baseline. Unsets any previous baseline for the same project.
 */
export declare function setBaseline(runId: string): void;
/**
 * Get the most recent baseline run, optionally filtered by project.
 */
export declare function getBaseline(projectId?: string): Run | null;
export interface CompareImagesResult {
    diffPercent: number;
    diffPixels: number;
    totalPixels: number;
    diffImagePath?: string;
}
/**
 * Compare two image files using @hasna/browser's pixel-level diff engine (sharp-based).
 * Falls back to byte comparison if sharp is unavailable.
 * Optionally saves a diff image highlighting changed pixels.
 */
export declare function compareImages(image1Path: string, image2Path: string, options?: {
    saveDiff?: boolean;
    diffDir?: string;
}): Promise<CompareImagesResult>;
/**
 * Compare screenshots from two runs, matching by scenario + step number.
 */
export declare function compareRunScreenshots(runId: string, baselineRunId: string, threshold?: number): Promise<VisualDiffResult[]>;
/**
 * Format visual diff results for terminal output with colored diff percentages.
 */
export declare function formatVisualDiffTerminal(results: VisualDiffResult[], threshold?: number): string;
//# sourceMappingURL=visual-diff.d.ts.map