import { AlphaOption } from './alpha-option';
import { Channels } from './channels';
import { ColorSpace } from './color-space';
import { CompositeOperator } from './composite-operator';
import { DistortMethod } from './distort-method';
import { DistortSettings } from './settings/distort-settings';
import { ErrorMetric } from './error-metric';
import { EvaluateOperator } from './evaluate-operator';
import { Gravity } from './gravity';
import { IImageProfile } from './profiles/image-profile';
import { IMagickImageCollection } from './magick-image-collection';
import { INativeInstance, NativeInstance } from './internal/native-instance';
import { MagickColor } from './magick-color';
import { MagickFormat } from './magick-format';
import { MagickGeometry } from './magick-geometry';
import { MagickReadSettings } from './settings/magick-read-settings';
import { OrientationType } from './orientation-type';
import { Percentage } from './percentage';
import { PixelChannel } from './pixel-channel';
import { IPixelCollection } from './pixels/pixel-collection';
import { Point } from './point';
import { VirtualPixelMethod } from './virtual-pixel-method';
export interface IMagickImage extends INativeInstance {
    readonly artifactNames: string[];
    backgroundColor: MagickColor;
    readonly channelCount: number;
    colorSpace: ColorSpace;
    depth: number;
    format: string;
    hasAlpha: boolean;
    readonly height: number;
    orientation: OrientationType;
    quality: number;
    readonly signature: string | null;
    virtualPixelMethod: VirtualPixelMethod;
    width: number;
    alpha(value: AlphaOption): void;
    autoOrient(): void;
    blur(): void;
    blur(channels: Channels): void;
    blur(radius: number, sigma: number): void;
    blur(radius: number, sigma: number, channels: Channels): void;
    channelOffset(pixelChannel: PixelChannel): number;
    clahe(xTiles: number, yTiles: number, numberBins: number, clipLimit: number): void;
    clahe(xTiles: Percentage, yTiles: Percentage, numberBins: number, clipLimit: number): void;
    clone(func: (image: IMagickImage) => void): void;
    clone(func: (image: IMagickImage) => Promise<void>): Promise<void>;
    colorAlpha(color: MagickColor): void;
    compare(image: IMagickImage, metric: ErrorMetric): number;
    compare(image: IMagickImage, metric: ErrorMetric, channels: Channels): number;
    composite(image: IMagickImage): void;
    composite(image: IMagickImage, compose: CompositeOperator): void;
    composite(image: IMagickImage, compose: CompositeOperator, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, args: string): void;
    composite(image: IMagickImage, compose: CompositeOperator, args: string, channels: Channels): void;
    composite(image: IMagickImage, point: Point): void;
    composite(image: IMagickImage, point: Point, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, args: string): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, args: string): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, args: string, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, point: Point): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, point: Point, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    deskew(threshold: Percentage): number;
    distort(method: DistortMethod, params: number[]): void;
    distort(method: DistortMethod, settings: DistortSettings, params: number[]): void;
    evaluate(channels: Channels, operator: EvaluateOperator, value: number): void;
    evaluate(channels: Channels, operator: EvaluateOperator, value: Percentage): void;
    evaluate(channels: Channels, geometry: MagickGeometry, operator: EvaluateOperator, value: number): void;
    evaluate(channels: Channels, geometry: MagickGeometry, operator: EvaluateOperator, value: Percentage): void;
    extent(width: number, height: number): void;
    extent(width: number, height: number, gravity: Gravity): void;
    extent(width: number, height: number, backgroundColor: MagickColor): void;
    extent(geometry: MagickGeometry): void;
    extent(geometry: MagickGeometry, gravity: Gravity): void;
    extent(geometry: MagickGeometry, gravity: Gravity, backgroundColor: MagickColor): void;
    extent(geometry: MagickGeometry, backgroundColor: MagickColor): void;
    getArtifact(name: string): string | null;
    getProfile(name: string): IImageProfile | null;
    getWriteMask(func: (mask: IMagickImage | null) => void): void;
    getWriteMask(func: (mask: IMagickImage | null) => Promise<void>): Promise<void>;
    getPixels<TReturnType>(func: (pixels: IPixelCollection) => TReturnType): TReturnType;
    level(blackPoint: Percentage, whitePoint: Percentage): void;
    level(blackPoint: Percentage, whitePoint: Percentage, gamma: number): void;
    level(channels: Channels, blackPoint: Percentage, whitePoint: Percentage): void;
    level(channels: Channels, blackPoint: Percentage, whitePoint: Percentage, gamma: number): void;
    modulate(brightness: Percentage): void;
    modulate(brightness: Percentage, saturation: Percentage): void;
    modulate(brightness: Percentage, saturation: Percentage, hue: Percentage): void;
    read(color: MagickColor, width: number, height: number): void;
    read(fileName: string, settings?: MagickReadSettings): void;
    read(array: Uint8Array, settings?: MagickReadSettings): void;
    readFromCanvas(canvas: HTMLCanvasElement): void;
    removeArtifact(name: string): void;
    removeWriteMask(): void;
    resize(geometry: MagickGeometry): void;
    resize(width: number, height: number): void;
    sharpen(): void;
    sharpen(radius: number, sigma: number): void;
    sharpen(radius: number, sigma: number, channels: Channels): void;
    sigmoidalContrast(contrast: number): void;
    sigmoidalContrast(sharpen: boolean, contrast: number): void;
    sigmoidalContrast(contrast: number, midpoint: number): void;
    sigmoidalContrast(sharpen: boolean, contrast: number, midpoint: number): void;
    sigmoidalContrast(contrast: number, midpointPercentage: Percentage): void;
    sigmoidalContrast(sharpen: boolean, contrast: number, midpointPercentage: Percentage): void;
    separate(func: (images: IMagickImageCollection) => void): void;
    separate(func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
    separate(func: (images: IMagickImageCollection) => void, channels: Channels): void;
    separate(func: (images: IMagickImageCollection) => Promise<void>, channels: Channels): Promise<void>;
    setArtifact(name: string, value: string): void;
    setArtifact(name: string, value: boolean): void;
    setWriteMask(image: IMagickImage): void;
    toString(): string;
    write(func: (data: Uint8Array) => void, format?: MagickFormat): void;
    write(func: (data: Uint8Array) => Promise<void>, format?: MagickFormat): Promise<void>;
    writeToCanvas(canvas: HTMLCanvasElement): void;
}
export declare class MagickImage extends NativeInstance implements IMagickImage {
    private readonly _settings;
    private constructor();
    get artifactNames(): string[];
    get backgroundColor(): MagickColor;
    set backgroundColor(value: MagickColor);
    get channelCount(): number;
    get colorSpace(): ColorSpace;
    set colorSpace(value: ColorSpace);
    get depth(): number;
    set depth(value: number);
    get format(): string;
    set format(value: string);
    get hasAlpha(): boolean;
    set hasAlpha(value: boolean);
    get height(): number;
    get orientation(): OrientationType;
    set orientation(value: OrientationType);
    get quality(): number;
    set quality(value: number);
    get signature(): string | null;
    get virtualPixelMethod(): VirtualPixelMethod;
    set virtualPixelMethod(value: VirtualPixelMethod);
    get width(): number;
    alpha(value: AlphaOption): void;
    autoOrient(): void;
    blur(): void;
    blur(channels: Channels): void;
    blur(radius: number, sigma: number): void;
    blur(radius: number, sigma: number, channels: Channels): void;
    channelOffset(pixelChannel: PixelChannel): number;
    clahe(xTiles: number, yTiles: number, numberBins: number, clipLimit: number): void;
    clahe(xTiles: Percentage, yTiles: Percentage, numberBins: number, clipLimit: number): void;
    clone(func: (image: IMagickImage) => void): void;
    clone(func: (image: IMagickImage) => Promise<void>): Promise<void>;
    colorAlpha(color: MagickColor): void;
    compare(image: IMagickImage, metric: ErrorMetric): number;
    compare(image: IMagickImage, metric: ErrorMetric, channels: Channels): number;
    composite(image: IMagickImage): void;
    composite(image: IMagickImage, compose: CompositeOperator): void;
    composite(image: IMagickImage, compose: CompositeOperator, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, args: string): void;
    composite(image: IMagickImage, compose: CompositeOperator, args: string, channels: Channels): void;
    composite(image: IMagickImage, point: Point): void;
    composite(image: IMagickImage, point: Point, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, channels: Channels): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, args: string): void;
    composite(image: IMagickImage, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, args: string): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, args: string, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, point: Point): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, point: Point, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, channels: Channels): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string): void;
    compositeGravity(image: IMagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    static create(): IMagickImage;
    deskew(threshold: Percentage): number;
    distort(method: DistortMethod, params: number[]): void;
    distort(method: DistortMethod, settings: DistortSettings, params: number[]): void;
    evaluate(channels: Channels, operator: EvaluateOperator, value: number): void;
    evaluate(channels: Channels, operator: EvaluateOperator, value: Percentage): void;
    evaluate(channels: Channels, geometry: MagickGeometry, operator: EvaluateOperator, value: number): void;
    evaluate(channels: Channels, geometry: MagickGeometry, operator: EvaluateOperator, value: Percentage): void;
    extent(width: number, height: number): void;
    extent(width: number, height: number, gravity: Gravity): void;
    extent(width: number, height: number, backgroundColor: MagickColor): void;
    extent(geometry: MagickGeometry): void;
    extent(geometry: MagickGeometry, gravity: Gravity): void;
    extent(geometry: MagickGeometry, gravity: Gravity, backgroundColor: MagickColor): void;
    extent(geometry: MagickGeometry, backgroundColor: MagickColor): void;
    getArtifact(name: string): string | null;
    getProfile(name: string): IImageProfile | null;
    getWriteMask(func: (mask: IMagickImage | null) => void): void;
    getWriteMask(func: (mask: IMagickImage | null) => Promise<void>): Promise<void>;
    getPixels<TReturnType>(func: (pixels: IPixelCollection) => TReturnType): TReturnType;
    level(blackPoint: Percentage, whitePoint: Percentage): void;
    level(blackPoint: Percentage, whitePoint: Percentage, gamma: number): void;
    level(channels: Channels, blackPoint: Percentage, whitePoint: Percentage): void;
    level(channels: Channels, blackPoint: Percentage, whitePoint: Percentage, gamma: number): void;
    modulate(brightness: Percentage): void;
    modulate(brightness: Percentage, saturation: Percentage): void;
    modulate(brightness: Percentage, saturation: Percentage, hue: Percentage): void;
    read(color: MagickColor, width: number, height: number): void;
    read(fileName: string, settings?: MagickReadSettings): void;
    read(array: Uint8Array, settings?: MagickReadSettings): void;
    readFromCanvas(canvas: HTMLCanvasElement): void;
    removeArtifact(name: string): void;
    removeWriteMask(): void;
    resize(geometry: MagickGeometry): void;
    resize(width: number, height: number): void;
    sharpen(): void;
    sharpen(radius: number, sigma: number): void;
    sharpen(radius: number, sigma: number, channels: Channels): void;
    sigmoidalContrast(contrast: number): void;
    sigmoidalContrast(sharpen: boolean, contrast: number): void;
    sigmoidalContrast(contrast: number, midpoint: number): void;
    sigmoidalContrast(sharpen: boolean, contrast: number, midpoint: number): void;
    sigmoidalContrast(contrast: number, midpointPercentage: Percentage): void;
    sigmoidalContrast(sharpen: boolean, contrast: number, midpointPercentage: Percentage): void;
    separate(func: (images: IMagickImageCollection) => void): void;
    separate(func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
    separate(func: (images: IMagickImageCollection) => void, channels: Channels): void;
    separate(func: (images: IMagickImageCollection) => Promise<void>, channels: Channels): Promise<void>;
    setArtifact(name: string, value: string): void;
    setArtifact(name: string, value: boolean): void;
    setWriteMask(image: IMagickImage): void;
    toString: () => string;
    write(func: (data: Uint8Array) => void, format?: MagickFormat): void;
    write(func: (data: Uint8Array) => Promise<void>, format?: MagickFormat): Promise<void>;
    writeToCanvas(canvas: HTMLCanvasElement): void;
    static _use<TReturnType>(func: (image: IMagickImage) => Promise<TReturnType>): Promise<TReturnType>;
    private static createInstance;
    private fromBool;
    private readFromArray;
    private toBool;
    private valueOrDefault;
}
