import { vec3 } from "./Math";
/**
 * function to yield an Uint8Array from an image
 * @param image
 * @param callback processing function
 */
export declare function extractImageData(image: HTMLImageElement): ImageData | null;
/**
 * image processing wrapper function, giving the imageData into a callback
 * @param image
 * @param callback processing function
 */
export declare function processImageData(image: HTMLImageElement, callback: (data: ImageData) => void): Promise<HTMLImageElement>;
export declare function calculateMeanImageColor(image: HTMLImageElement): vec3;
/**
 * Try to recover height map from normal map
 * @param image
 * @param scale
 */
export declare function convertNormalToHeightMap(image: HTMLImageElement, scale?: number): Promise<HTMLImageElement>;
/**
 * Ensure that r*r + g*g + b*b equals 1
 * @param image
 */
export declare function normalizeBlueChannelOfNormalMap(image: HTMLImageElement): Promise<HTMLImageElement>;
/**
 * Turn around all r, b and g values
 * @param image
 */
export declare function invertColors(image: HTMLImageElement): Promise<HTMLImageElement>;
/**
 * Conversion function from data array to HTMLImage
 * @param input
 * @param width
 * @param height
 * @param inputHasAlphaChannel determines whether data can be used directly or the alpha channel needs tobe filled with values of 255
 */
export declare function Uint8ArrayToImage(input: Uint8Array, width: number, height: number, inputHasAlphaChannel: boolean): Promise<HTMLImageElement>;
/**
 * Convenience function to get base64 data url from image
 * @param image
 * @param type
 * @param quality
 */
export declare function getDataUrlFromImage(image: HTMLImageElement, type?: string, quality?: any): string;
