import { Reporter, TestCase, TestSpecification, Vitest } from "vitest/node"; //#region src/ImageComparison.d.ts /** nodejs compatible interface to DOM ImageData */ interface ImageData { readonly data: Uint8ClampedArray; readonly width: number; readonly height: number; readonly colorSpace: "srgb" | "display-p3"; } /** Options controlling image comparison thresholds and behavior. */ interface ComparisonOptions { /** Color difference threshold (0-1). Default: 0.1 */ threshold?: number; /** Max ratio of pixels allowed to differ (0-1). Default: 0 */ allowedPixelRatio?: number; /** Max absolute number of pixels allowed to differ. Default: 0 */ allowedPixels?: number; /** If true, disables detecting and ignoring anti-aliased pixels. Default: true */ includeAA?: boolean; } interface ComparisonResult { pass: boolean; diffBuffer?: Buffer; message: string; mismatchedPixels: number; mismatchedPixelRatio: number; } declare function compareImages(reference: ImageData | Buffer, actual: ImageData | Buffer, options?: ComparisonOptions): Promise; //#endregion //#region src/DiffReport.d.ts declare const autoOpenValues: readonly ["always", "failures", "never"]; type AutoOpen = (typeof autoOpenValues)[number]; /** Failed image snapshot with comparison results and file paths. */ interface ImageSnapshotFailure { testName: string; snapshotName: string; comparison: ComparisonResult; paths: { reference: string; actual: string; diff: string; }; } /** Configuration for HTML diff report generation. */ interface DiffReportConfig { /** Auto-open report in browser. Default: "failures" or "never" in CI */ autoOpen: AutoOpen; /** Directory path for generated HTML report (absolute or relative). */ reportDir: string; /** Vitest config root for calculating relative paths when copying images */ configRoot: string; /** Enable live reload script in HTML. Default: false */ liveReload?: boolean; } /** Clear the diff report directory if it exists. */ declare function clearDiffReport(reportDir: string): Promise; /** Generate HTML diff report for image snapshot results. */ declare function generateDiffReport(failures: ImageSnapshotFailure[], config: DiffReportConfig): Promise; //#endregion //#region src/ImageSnapshotReporter.d.ts interface ImageSnapshotReporterOptions { /** Auto-open report in browser. Default: "failures" or "never" in CI */ autoOpen?: AutoOpen; /** Report directory (relative to config.root or absolute) */ reportPath?: string; /** Port for live-reload server. Set to 0 to disable. Default: 4343 */ port?: number; } /** Vitest reporter that generates HTML diff reports for image snapshot failures */ declare class ImageSnapshotReporter implements Reporter { private failuresByFile; private vitest; private reportPath?; private autoOpen; private port; private serverStarted; constructor(options?: ImageSnapshotReporterOptions); /** Resolve autoOpen setting with priority: CI override > env var > config option > default */ private resolveAutoOpen; /** Parse and validate IMAGE_DIFF_AUTO_OPEN environment variable */ private envAutoOpen; onInit(vitest: Vitest): void; private startServer; onTestRunStart(specifications: ReadonlyArray): void; onTestCaseResult(testCase: TestCase): void; onTestRunEnd(): Promise; private resolveReportDir; } //#endregion export { ImageSnapshotFailure as a, generateDiffReport as c, ImageData as d, compareImages as f, DiffReportConfig as i, ComparisonOptions as l, ImageSnapshotReporterOptions as n, autoOpenValues as o, AutoOpen as r, clearDiffReport as s, ImageSnapshotReporter as t, ComparisonResult as u };