import { ColorTransform } from '@awayjs/core';
import { ShaderBase, _Render_RenderableBase, AnimationRegisterData } from '@awayjs/renderer';
import { AnimationElements } from '../data/AnimationElements';
import { ParticleColorNode } from '../nodes/ParticleColorNode';
import { ParticleAnimator } from '../ParticleAnimator';
import { ParticleStateBase } from './ParticleStateBase';
/**
 * ...
 * @author ...
 */
export declare class ParticleColorState extends ParticleStateBase {
    /** @private */
    static START_MULTIPLIER_INDEX: number;
    /** @private */
    static DELTA_MULTIPLIER_INDEX: number;
    /** @private */
    static START_OFFSET_INDEX: number;
    /** @private */
    static DELTA_OFFSET_INDEX: number;
    /** @private */
    static CYCLE_INDEX: number;
    private _particleColorNode;
    private _usesMultiplier;
    private _usesOffset;
    private _usesCycle;
    private _usesPhase;
    private _startColor;
    private _endColor;
    private _cycleDuration;
    private _cyclePhase;
    private _cycleData;
    private _startMultiplierData;
    private _deltaMultiplierData;
    private _startOffsetData;
    private _deltaOffsetData;
    /**
     * Defines the start color transform of the state, when in global mode.
     */
    get startColor(): ColorTransform;
    set startColor(value: ColorTransform);
    /**
     * Defines the end color transform of the state, when in global mode.
     */
    get endColor(): ColorTransform;
    set endColor(value: ColorTransform);
    /**
     * Defines the duration of the animation in seconds, used as a period independent of particle duration when in global mode. Defaults to 1.
     */
    get cycleDuration(): number;
    set cycleDuration(value: number);
    /**
     * Defines the phase of the cycle in degrees, used as the starting offset of the cycle when in global mode. Defaults to 0.
     */
    get cyclePhase(): number;
    set cyclePhase(value: number);
    constructor(animator: ParticleAnimator, particleColorNode: ParticleColorNode);
    setRenderState(shader: ShaderBase, renderable: _Render_RenderableBase, animationElements: AnimationElements, animationRegisterData: AnimationRegisterData): void;
    private updateColorData;
}
//# sourceMappingURL=ParticleColorState.d.ts.map