import { BinaryIO } from './BinaryIO.js';
type ColorMode = 'abgr' | 'bgra' | 'rgb';
/**
 * Color containing red, green, blue and alpha channels
 *
 * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/graphics/GraphicsFormat.h#L29
 */
export type ArxColor = {
    /**
     * red channel, integer between 0 and 255
     *
     * - 0 = darkest, lowest intensity
     * - 255 = brightest, most intensity
     */
    r: number;
    /**
     * green channel, integer between 0 and 255
     *
     * - 0 = darkest, lowest intensity
     * - 255 = brightest, most intensity
     */
    g: number;
    /**
     * blue channel, integer between 0 and 255
     *
     * - 0 = darkest, lowest intensity
     * - 255 = brightest, most intensity
     */
    b: number;
    /**
     * alpha channel, float between 0.0 and 1.0
     *
     * - 0.0 = fully transparent
     * - 1.0 = fully opaque
     */
    a: number;
};
export declare class Color {
    static readFrom(binary: BinaryIO<ArrayBufferLike>, mode: ColorMode): ArxColor;
    static accumulateFrom({ r, g, b, a }: ArxColor, mode: ColorMode): ArrayBuffer;
    static sizeOf(mode: ColorMode): number;
    static get black(): ArxColor;
    static get transparent(): ArxColor;
}
export {};
