/// <reference types="node" />
export interface EncodeOptions {
    /**
     * The width of the image to be encoded in pixels.
     */
    width: number;
    /**
     * The height of the image to be encoded in pixels.
     */
    height?: number;
    /**
     * level of compression to use 0 - no compression, 1 - fastest, 9 - best size.
     */
    compressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
}
/**
 * Encode a buffer of raw RGB or RGBA image data into PNG format.
 * Only RGB and RGBA color formats are supported. This function will automatically calculate whether an
 * alpha channel is present by calculating the amount of bytes per pixel from the length of the buffer
 * and the provided `width` and `height`. Only 8bit colors are supported.
 *
 * @param buffer The buffer of raw pixel data to encode.
 * @param options Options used to encode the image.
 *
 * @return the encoded PNG as a new buffer.
 */
export declare function encode(buffer: Buffer, options: EncodeOptions): Buffer;
export declare type WritePngFileCallback = (error: Error) => void;
export declare function writePngFile(path: string, buffer: Buffer, options: EncodeOptions, callback: WritePngFileCallback): void;
export declare function writePngFile(path: string, buffer: Buffer, options: EncodeOptions): Promise<void>;
/**
 * Encode and write a PNG file synchroneously.
 *
 * @param path The path the file should be written to.
 * @param buffer The buffer of raw pixel data which should be encoded and written to disk.
 * @param options Options used to encode the image.
 *
 * @return The decoded image.
 */
export declare function writePngFileSync(path: string, buffer: Buffer, options: EncodeOptions): void;
