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 { Gravity } from "./gravity";
import { MagickColor } from "./magick-color";
import { MagickFormat } from "./magick-format";
import { MagickGeometry } from "./magick-geometry";
import { MagickImageCollection } from "./magick-image-collection";
import { MagickReadSettings } from "./settings/magick-read-settings";
import { NativeInstance } from "./native-instance";
import { OrientationType } from "./orientation-type";
import { Percentage } from "./percentage";
import { PixelChannel } from "./pixel-channel";
import { PixelCollection } from "./pixels/pixel-collection";
import { Point } from "./point";
import { VirtualPixelMethod } from "./virtual-pixel-method";
export declare class MagickImage extends NativeInstance {
    private readonly _settings;
    private constructor();
    get artifactNames(): string[];
    get backgroundColor(): MagickColor;
    set backgroundColor(value: MagickColor);
    get channelCount(): number;
    get colorSpace(): 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 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;
    colorAlpha(color: MagickColor): void;
    composite(image: MagickImage): void;
    composite(image: MagickImage, compose: CompositeOperator): void;
    composite(image: MagickImage, compose: CompositeOperator, channels: Channels): void;
    composite(image: MagickImage, compose: CompositeOperator, args: string): void;
    composite(image: MagickImage, compose: CompositeOperator, args: string, channels: Channels): void;
    composite(image: MagickImage, point: Point): void;
    composite(image: MagickImage, point: Point, channels: Channels): void;
    composite(image: MagickImage, compose: CompositeOperator, point: Point): void;
    composite(image: MagickImage, compose: CompositeOperator, point: Point, channels: Channels): void;
    composite(image: MagickImage, compose: CompositeOperator, point: Point, args: string): void;
    composite(image: MagickImage, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    compositeGravity(image: MagickImage, gravity: Gravity): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, channels: Channels): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, args: string): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, args: string, channels: Channels): void;
    compositeGravity(image: MagickImage, gravity: Gravity, point: Point): void;
    compositeGravity(image: MagickImage, gravity: Gravity, point: Point, channels: Channels): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, point: Point): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, channels: Channels): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string): void;
    compositeGravity(image: MagickImage, gravity: Gravity, compose: CompositeOperator, point: Point, args: string, channels: Channels): void;
    static create(): MagickImage;
    deskew(threshold: Percentage): number;
    distort(method: DistortMethod, params: number[]): void;
    distort(method: DistortMethod, settings: DistortSettings, params: number[]): void;
    drawOnCanvas(canvas: HTMLCanvasElement): 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;
    pixels<TReturnType>(func: (pixels: PixelCollection) => TReturnType): TReturnType;
    read(color: MagickColor, width: number, height: number): void;
    read(fileName: string, settings?: MagickReadSettings): void;
    read(array: Uint8Array, settings?: MagickReadSettings): void;
    removeArtifact(name: string): void;
    resize(geometry: MagickGeometry): void;
    resize(width: number, height: number): void;
    separate(func: (images: MagickImageCollection) => void): void;
    separate(func: (images: MagickImageCollection) => Promise<void>): Promise<void>;
    separate(func: (images: MagickImageCollection) => void, channels: Channels): void;
    separate(func: (images: MagickImageCollection) => Promise<void>, channels: Channels): Promise<void>;
    setArtifact(name: string, value: string): void;
    setArtifact(name: string, value: boolean): void;
    toString: () => string;
    write(func: (data: Uint8Array) => void, format?: MagickFormat): void;
    write(func: (data: Uint8Array) => Promise<void>, format?: MagickFormat): Promise<void>;
    static _use<TReturnType>(func: (image: MagickImage) => Promise<TReturnType>): Promise<TReturnType>;
    private static createInstance;
    private fromBool;
    private toBool;
    private valueOrDefault;
}
