import { IColorGPU, IColorGPUJson } from "./interfaces/IColorGPU";
import { IColorRGB, IColorRGBJson } from "./interfaces/IColorRGB";
import { IColorRGBA, IColorRGBAJson } from "./interfaces/IColorRGBA";
import { IColorRYB } from "./interfaces/IColorRYB";
import { IColorHSV } from "./interfaces/IColorHSV";
import { IColorCMYK } from "./interfaces/IColorCMYK";
import { IColorXYZ } from "./interfaces/IColorXYZ";
import { ColorCMYK } from "./ColorCMYK";
import { ColorHSV } from "./ColorHSV";
import { IColorRYBA } from "./interfaces/IColorRYBA";
export type ColorGPULike = number[] | Float32Array | ColorGPU;
export type ColorFormatType = IColorGPU | string | Float32Array | number[] | number | IColorRGB | IColorRGBA | IColorRGBAJson | IColorRGBJson | IColorRYB | IColorRYBA | ColorHSV | IColorHSV | IColorCMYK | ColorCMYK;
export declare const getColorGPU: (color: ColorFormatType, result?: ColorGPU) => ColorGPU;
export declare class ColorGPU extends Float32Array implements IColorGPU {
    static average: (color: IColorGPU | ArrayLike<number>) => number;
    static averageWeighted: (color: IColorGPU | ArrayLike<number>, wr?: number, wg?: number, wb?: number) => number;
    static clone: (color: IColorGPU | ArrayLike<number>) => IColorGPU;
    static create: (r?: number, g?: number, b?: number, a?: number) => IColorGPU;
    static equals: (a: IColorGPU, b: IColorGPU) => boolean;
    static fromArray: (arr: Float32Array | IColorGPU | number[], out?: IColorGPU) => IColorGPU;
    static fromColorCMYK: (arr: Float32Array | IColorCMYK | number[], out?: IColorGPU) => IColorGPU;
    static fromColorHSL: (color: IColorHSV | number[] | Float32Array, out?: ColorGPU) => ColorGPU;
    static fromColorHSV: (color: IColorHSV | number[] | Float32Array, out?: ColorGPU) => ColorGPU;
    static fromColorRGB(color: IColorRGB | number[] | Uint8Array, out?: IColorGPU): IColorGPU;
    static fromColorRGBA(color: IColorRGBA | number[] | Uint8Array, out?: IColorGPU): IColorGPU;
    static fromColorRYB(color: IColorRYB | number[] | Uint8Array, out?: IColorGPU): IColorGPU;
    static fromColorXYZ: (color: IColorXYZ | number[] | Float32Array, out?: IColorGPU) => IColorGPU;
    static fromHex: (hex: number, alpha?: number, out?: IColorGPU) => IColorGPU;
    static fromJson: (json: IColorGPUJson, out?: IColorGPU) => IColorGPU;
    static fromScalar: (scalar: number, out?: IColorGPU) => IColorGPU;
    static fromString: (str: string, out?: IColorGPU) => IColorGPU;
    static grayscale: (color: IColorGPU | ArrayLike<number>, wr?: number, wg?: number, wb?: number, out?: IColorGPU) => IColorGPU;
    static lerp: <T extends ColorGPULike>(a: ColorGPULike, b: ColorGPULike, alpha: number, out?: T) => T;
    readonly dataType: string;
    constructor(r?: number, g?: number, b?: number, a?: number);
    get r(): number;
    set r(val: number);
    get g(): number;
    set g(val: number);
    get b(): number;
    set b(val: number);
    get a(): number;
    set a(val: number);
}
