/**
 * Visual diff — pixel-delta scoring for UI / visual outputs.
 *
 * Minimal dependency-free implementation: accepts two PNGs as byte
 * arrays + width/height and returns a Δ ratio + per-channel histogram.
 * Consumers supply the decoded pixel arrays (we don't pull a PNG
 * decoder into the core — use `sharp`, `@napi-rs/canvas`, or Playwright
 * in the driving test and pass the result here).
 */
export interface ImageData {
    width: number;
    height: number;
    /** Pixel data in RGBA order, 4 bytes per pixel. */
    data: Uint8Array | Uint8ClampedArray;
}
export interface VisualDiffResult {
    /** Ratio of pixels differing beyond `tolerance` (0..1). */
    diffRatio: number;
    differingPixels: number;
    totalPixels: number;
    maxChannelDelta: number;
    /** Status for dashboards: unchanged (< 0.1%), changed, or severely-changed (> 5%). */
    status: 'unchanged' | 'changed' | 'severely-changed';
}
export interface VisualDiffOptions {
    /** Pixels whose max-channel delta is ≤ this are considered unchanged. Default 8/255. */
    tolerance?: number;
}
export declare function visualDiff(a: ImageData, b: ImageData, options?: VisualDiffOptions): VisualDiffResult;
/** Convenience: diffs two byte-identical-dim RGBA arrays, returns just the ratio. */
export declare function pixelDeltaRatio(a: Uint8Array, b: Uint8Array, width: number, height: number, tolerance?: number): number;
//# sourceMappingURL=visual-diff.d.ts.map