/**
 * Methods for creating tray, dock, and application icons.
 *
 * @experimental
 * @public
 * @packageDocumentation
 */
/// <reference types="node" />
import type { AddRepresentationOptions, BitmapOptions, nativeImage, Rectangle, ResizeOptions, ToBitmapOptions, ToDataURLOptions, ToPNGOptions } from "@todesktop/client-electron-types";
import { type Ref } from "./invoke.js";
/**
 * Creates a new `NativeImage` instance from dataURL.
 * @public
 */
export declare function createFromDataURL(...args: Parameters<typeof nativeImage["createFromDataURL"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Creates a new `NativeImage` instance from path.
 * @public
 */
export declare function createThumbnailFromPath(...args: Parameters<typeof nativeImage["createThumbnailFromPath"]>): Promise<Electron.NativeImage>;
/**
 * Creates a new `NativeImage` instance from path.
 * @public
 */
export declare function createFromPath(...args: Parameters<typeof nativeImage["createFromPath"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Creates a new `NativeImage` instance from a bitmap buffer.
 * @public
 */
export declare function createFromBitmap(...args: Parameters<typeof nativeImage["createFromBitmap"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Creates a new `NativeImage` instance from a buffer.
 * @public
 */
export declare function createFromBuffer(...args: Parameters<typeof nativeImage["createFromBuffer"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Creates a new `NativeImage` instance from an NS image that maps to an image name.
 * @public
 */
export declare function createFromNamedImage(...args: Parameters<typeof nativeImage["createFromNamedImage"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Creates a new `NativeImage`.
 * @public
 */
export declare function createEmpty(...args: Parameters<typeof nativeImage["createEmpty"]>): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * returns a Buffer that contains the image's PNG encoded data.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function toPNG({ ref, ...rest }: {
    ref: Ref;
} & ToPNGOptions): Promise<Buffer>;
/**
 * returns a Buffer that contains the image's JPEG encoded data.
 *
 * @param options - ref: Reference for the NativeImage; quality: number between 0 and 100.
 * @public
 */
export declare function toJPEG({ ref, quality }: {
    ref: Ref;
    quality: number;
}): Promise<Buffer>;
/**
 * returns a Buffer that contains a copy of the image's raw bitmap pixel data.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function toBitmap({ ref, ...rest }: {
    ref: Ref;
} & ToBitmapOptions): Promise<Buffer>;
/**
 * returns the data URL of the image.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function toDataURL({ ref, ...rest }: {
    ref: Ref;
} & ToDataURLOptions): Promise<string>;
/**
 * returns a Buffer that contains the image's raw bitmap pixel data.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function getBitmap({ ref, ...rest }: {
    ref: Ref;
} & BitmapOptions): Promise<Buffer>;
/**
 * returns a Buffer that stores C pointer to underlying native handle of the image.
 *
 * @param options - ref: Reference for the NativeImage.
 * @public
 */
export declare function getNativeHandle({ ref }: {
    ref: Ref;
}): Promise<Buffer>;
/**
 * returns whether the image is empty.
 *
 * @param options - ref: Reference for the NativeImage.
 * @public
 */
export declare function isEmpty({ ref }: {
    ref: Ref;
}): Promise<boolean>;
/**
 * returns the size of the image.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function getSize({ ref, scaleFactor, }: {
    ref: Ref;
    scaleFactor?: number;
} & BitmapOptions): Promise<Electron.Size>;
/**
 * Marks the image as a template image.
 *
 * @param options - ref: Reference for the NativeImage; value: boolean;
 * @public
 */
export declare function setTemplateImage({ ref, value, }: {
    ref: Ref;
    value: boolean;
}): Promise<void>;
/**
 * Returns whether the image is a template image.
 *
 * @param options - ref: Reference for the NativeImage; value: boolean;
 * @public
 */
export declare function isTemplateImage({ ref }: {
    ref: Ref;
}): Promise<boolean>;
/**
 * Returns the cropped image.
 *
 * @param options - ref: Reference for the NativeImage; height: number; width: number; x: number; y: number;
 * @public
 */
export declare function crop({ ref, ...rest }: {
    ref: Ref;
} & Rectangle): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Returns a resized image.
 *
 * @param options - ref: Reference for the NativeImage; width: number height: number; quality: number.
 * @public
 */
export declare function resize({ ref, ...rest }: {
    ref: Ref;
} & ResizeOptions): Promise<import("@todesktop/client-util").InstanceRefObject>;
/**
 * Returns a resized image.
 *
 * @param options - ref: Reference for the NativeImage; scaleFactor: number between 0 and 1.0.
 * @public
 */
export declare function getAspectRatio({ ref, scaleFactor, }: {
    ref: Ref;
    scaleFactor?: number;
}): Promise<number>;
/**
 * Returns an array of all scale factors corresponding to representations for a given nativeImage.
 *
 * @param options - ref: Reference for the NativeImage.
 * @public
 */
export declare function getScaleFactors({ ref }: {
    ref: Ref;
}): Promise<number[]>;
/**
 * Add an image representation for a specific scale factor. This can be used to explicitly add different scale factor representations to an image.
 *
 * @param options - ref: Reference for the NativeImage; height: number; width: number; scale: number; buffer: Buffer; dataURL: string;
 * @public
 */
export declare function addRepresentation({ ref, ...rest }: {
    ref: Ref;
} & AddRepresentationOptions): Promise<void>;
