import type { Image } from '../Image.js'; export declare const GreyAlgorithm: { readonly LUMA_709: "luma709"; readonly LUMA_601: "luma601"; readonly MAX: "max"; readonly MIN: "min"; readonly AVERAGE: "average"; readonly MINMAX: "minmax"; readonly RED: "red"; readonly GREEN: "green"; readonly BLUE: "blue"; readonly BLACK: "black"; readonly CYAN: "cyan"; readonly MAGENTA: "magenta"; readonly YELLOW: "yellow"; readonly HUE: "hue"; readonly SATURATION: "saturation"; readonly LIGHTNESS: "lightness"; }; export type GreyAlgorithm = (typeof GreyAlgorithm)[keyof typeof GreyAlgorithm]; /** * Call back that converts the RGB channels to grey. It is clamped afterwards. * @callback GreyAlgorithmCallback * @param {number} red - Value of the red channel. * @param {number} green - Value of the green channel. * @param {number} blue - Value of the blue channel. * @returns {number} Value of the grey channel. */ export type GreyAlgorithmCallback = (red: number, green: number, blue: number, image: Image) => number; export interface GreyOptions { /** * Specify the grey algorithm to use. * @default `'luma709'` */ algorithm?: GreyAlgorithm | GreyAlgorithmCallback; /** * Specify wether to keep an alpha channel in the new image or not. * @default `false` */ keepAlpha?: boolean; /** * Specify wether to merge the alpha channel with the gray pixel or not. * @default `true` */ mergeAlpha?: boolean; /** * Image to which to output. */ out?: Image; } /** * Convert the current image to grayscale. * The source image has to be RGB or RGBA. * If there is an alpha channel you have to specify what to do: * - keepAlpha : keep the alpha channel, you will get a GREYA image. * - mergeAlpha : multiply each pixel of the image by the alpha, you will get a GREY image. * @param image - Original color image to convert to grey. * @param options - The grey conversion options. * @returns The resulting grey image. */ export declare function grey(image: Image, options?: GreyOptions): Image; //# sourceMappingURL=grey.d.ts.map