/** @format */
/**
 * The format of a color or image.
 */
export declare enum Format {
    /** 1-bit unsigned integer */
    uint1 = 0,
    /** 2-bit unsigned integer */
    uint2 = 1,
    /** 4-bit unsigned integer */
    uint4 = 2,
    /** 8-bit unsigned integer */
    uint8 = 3,
    /** 16-bit unsigned integer */
    uint16 = 4,
    /** 32-bit unsigned integer */
    uint32 = 5,
    /** 8-bit signed integer */
    int8 = 6,
    /** 16-bit signed integer */
    int16 = 7,
    /** 32-bit signed integer */
    int32 = 8,
    /** 16-bit floating point */
    float16 = 9,
    /** 32-bit floating point */
    float32 = 10,
    /** 64-bit floating point */
    float64 = 11
}
/**
 * The format type of a color or image.
 */
export declare enum FormatType {
    /**
     * Unsigned integer format.
     */
    uint = 0,
    /**
     * Signed integer format.
     */
    int = 1,
    /**
     * Floating point format.
     */
    float = 2
}
/**
 * A map that associates each Format with its corresponding FormatType.
 */
export declare const FormatToFormatType: Map<Format, FormatType>;
/**
 * A map that associates each Format with its corresponding size in bytes.
 */
export declare const FormatSize: Map<Format, number>;
/**
 * A map that associates each Format with its maximum value.
 */
export declare const FormatMaxValue: Map<Format, number>;
/**
 * Calculates the row stride (the number of bytes per row) for an image based on its width,
 * number of channels, and pixel format.
 *
 * @param {number} width - The width of the image in pixels.
 * @param {number} numChannels - The number of color channels per pixel.
 * @param {Format} format - The pixel format of the image.
 * @returns {number} - The row stride in bytes.
 */
export declare function getRowStride(width: number, numChannels: number, format: Format): number;
/**
 * Converts a numeric value from one format to another.
 *
 * @param {number} value - The numeric value to be converted.
 * @param {Format} from - The format of the input value.
 * @param {Format} to - The format to which the value should be converted.
 * @returns {number} - The converted numeric value.
 * @throws {LibError} If the format conversion is unknown.
 */
export declare function convertFormatValue(value: number, from: Format, to: Format): number;
