import { Number3, StringOrNumber3 } from '../../types/GlobalTypes';
import { TypedMultipleParam } from './_Multiple';
import { Color } from 'three';
import { ParamType } from '../poly/ParamType';
import { FloatParam } from './Float';
import { ParamValuesTypeMap } from './types/ParamValuesTypeMap';
import { ParamInitValuesTypeMap } from './types/ParamInitValuesTypeMap';
import { ColorConversion } from '../../core/Color';
export declare class ColorParam extends TypedMultipleParam<ParamType.COLOR> {
    protected _value: Color;
    private _valuePreConversion;
    private _valueSerializedDirty;
    private _valueSerialized;
    private _valuePreConversionSerialized;
    r: FloatParam;
    g: FloatParam;
    b: FloatParam;
    static type(): ParamType;
    componentNames(): Readonly<string[]>;
    defaultValueSerialized(): StringOrNumber3;
    _prefilterInvalidRawInput(rawInput: any): StringOrNumber3 | Color;
    valueSerialized(): Number3;
    valuePreConversionSerialized(): Number3;
    private _copiedValue;
    protected _copyValue(param: ColorParam): void;
    protected _cloneRawInput(raw_input: ParamInitValuesTypeMap[ParamType.COLOR]): StringOrNumber3 | Color;
    static areRawInputEqual(raw_input1: ParamInitValuesTypeMap[ParamType.COLOR], raw_input2: ParamInitValuesTypeMap[ParamType.COLOR]): boolean;
    static areValuesEqual(val1: ParamValuesTypeMap[ParamType.COLOR], val2: ParamValuesTypeMap[ParamType.COLOR]): boolean;
    initComponents(): void;
    postOptionsInitialize(): void;
    private _updateValueSerializedIfRequired;
    valuePreConversion(): Color;
    setConversion(conversion: ColorConversion): Promise<void>;
    setValueFromComponents(): void;
    private _applyColorConversion;
}
