export declare const utilities: {
    name: string;
    fs: string;
};
type RGB = [number, number, number];
/**
 * Encodes a numeric index into an RGB array, where each element represents
 * a color channel (red, green, blue) in the range [0, 255].
 *
 * This function is the same than the shader function `encodeIndexToRGB`,
 * except that the shader function returns values in the range [0, 1] to satisfy
 * OpenGL's requirements for color values.
 *
 * The encoding uses bit-shifting to split the index into three 8-bit values,
 * allowing for unique representation of indices from 0 to 16,777,215.
 *
 * @param index - The numeric index to encode. Values outside the range [0, 16,777,215]
 *                are clamped to fit within the representable range.
 * @returns An array of three numbers representing the encoded RGB value.
 */
export declare function encodeIndexToRGB(index: number): RGB;
/**
 * Decodes a numeric index from an RGB-encoded array.
 * Used to decode indices encoded with the shader function `encodeIndexToRGB`.
 *
 * The function interprets the input array as a packed 24-bit integer,
 * where each element represents a color channel (red, green, blue).
 * The index is calculated as: (red * 65536) + (green * 256) + blue.
 *
 * @param encodedIndex - An array of three numbers representing the RGB channels.
 * @returns The decoded numeric index.
 */
export declare function decodeIndexFromRGB(encodedIndex: RGB): number;
/**
 * Encodes a normalized value (in the range [0, 1]) into an RGB representation,
 * where each element represents a color channel (red, green, blue) in the range [0, 255].
 *
 * This function is the same than the shader function `encodeNormalizedValueToRGB`,
 * except that the shader function returns values in the range [0, 1] to satisfy
 * OpenGL's requirements for color values.
 *
 * The value is first clamped to the [0, 1] range, then scaled by `constants.MAX_INDEX`
 * and passed to `encodeIndexToRGB` for conversion.
 *
 * @param value - The normalized value to encode, expected to be between 0 and 1.
 * @returns An RGB object representing the encoded value.
 */
export declare function encodeNormalizedValueToRGB(value: number): RGB;
/**
 * Decodes a normalized value from an RGB-encoded array.
 * Used to decode indices encoded with the shader function `encodeNormalizedValueToRGB`.
 *
 * The function interprets the input `encodedValue` as a 3-element array representing
 * the red, green, and blue channels. It reconstructs the original value by combining
 * the channels into a single integer and normalizing it by dividing by `constants.MAX_INDEX`.
 *
 * @param encodedValue - An array of three numbers representing the RGB channels.
 * @returns The decoded normalized value as a number in the range [0, 1].
 */
export declare function decodeNormalizedValueFromRGB(encodedValue: RGB): number;
/**
 * Encodes a normalized value (in the range [0, 1]) into an RGB representation,
 * where each element represents a color channel (red, green, blue) in the range [0, 255].
 * The value can be NaN, which gets encoded to [255, 255, 255].
 *
 * This function is the same than the shader function `encodeNormalizedValueWithNaNToRGB`,
 * except that the shader function returns values in the range [0, 1] to satisfy
 * OpenGL's requirements for color values.
 *
 * The value is first clamped to the [0, 1] range, then scaled by `constants.MAX_INDEX`
 * and passed to `encodeIndexToRGB` for conversion.
 *
 * @param value - The normalized value to encode, expected to be between 0 and 1.
 * @returns An RGB object representing the encoded value.
 */
export declare function encodeNormalizedValueWithNaNToRGB(value: number): RGB;
/**
 * Decodes a normalized value from an RGB-encoded array.
 * Used to decode indices encoded with the shader function `encodeNormalizedValueWithNaNToRGB`.
 *
 * The function interprets the input `encodedValue` as a 3-element array representing
 * the red, green, and blue channels. It reconstructs the original value by combining
 * the channels into a single integer and normalizing it by dividing by `constants.MAX_INDEX`.
 *
 * @param encodedValue - An array of three numbers representing the RGB channels.
 * @returns The decoded normalized value as a number in the range [0, 1].
 */
export declare function decodeNormalizedValueWithNaNFromRGB(encodedValue: RGB): number;
export {};
