///
import { IComparerOptions, IRGBColor } from './options';
export interface IRGBAColor extends IRGBColor {
a: number;
}
export type ImageOptions = Pick;
export declare class Image {
private inner;
private buffer;
private refreshRequired;
private readonly options;
constructor(buffer: Buffer, options?: ImageOptions);
get width(): number;
get height(): number;
get length(): number;
getPixel(index: number): number;
setPixel(index: number, value: number): void;
getPixelXY(x: number, y: number): number;
setPixelXY(x: number, y: number, value: number): void;
getPosition(x: number, y: number): number;
private updateBuffer;
write(fileName: string): void;
getBuffer(): Buffer;
clone(): Image;
fill(color: number | IRGBColor | IRGBAColor): void;
invert(): void;
replace(source: Image, mask?: Image): void;
private traverse;
filter({ r, g, b }: IRGBColor): void;
spreadBlack(radius: number): void;
and(...from: Image[]): void;
or(...from: Image[]): void;
xor(...from: Image[]): void;
normalize(): void;
multiply(color: number | IRGBColor | IRGBAColor): void;
do(callback: (x: Image) => Image | void, log?: (image: Image) => void): Image;
as(callback: (x: Image) => Image | void, log?: (image: Image) => void): Image;
with(callback: (x: Image) => T): T;
dataClone(): number[];
}
export declare function colorToString(color: IRGBColor): string;