import { Vector3D } from '@awayjs/core';
import { ShaderBase, _Render_RenderableBase, AnimationRegisterData } from '@awayjs/renderer';
import { AnimationElements } from '../data/AnimationElements';
import { ParticleOrbitNode } from '../nodes/ParticleOrbitNode';
import { ParticleAnimator } from '../ParticleAnimator';
import { ParticleStateBase } from './ParticleStateBase';
/**
 * ...
 */
export declare class ParticleOrbitState extends ParticleStateBase {
    /** @private */
    static ORBIT_INDEX: number;
    /** @private */
    static EULERS_INDEX: number;
    private _particleOrbitNode;
    private _usesEulers;
    private _usesCycle;
    private _usesPhase;
    private _radius;
    private _cycleDuration;
    private _cyclePhase;
    private _eulers;
    private _orbitData;
    private _eulersMatrix;
    /**
     * Defines the radius of the orbit when in global mode. Defaults to 100.
     */
    get radius(): number;
    set radius(value: number);
    /**
     * Defines the duration of the orbit 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 orbit in degrees, used as the starting offset of the cycle when in global mode. Defaults to 0.
     */
    get cyclePhase(): number;
    set cyclePhase(value: number);
    /**
     * Defines the euler rotation in degrees, applied to the orientation of the orbit when in global mode.
     */
    get eulers(): Vector3D;
    set eulers(value: Vector3D);
    constructor(animator: ParticleAnimator, particleOrbitNode: ParticleOrbitNode);
    setRenderState(shader: ShaderBase, renderable: _Render_RenderableBase, animationElements: AnimationElements, animationRegisterData: AnimationRegisterData): void;
    private updateOrbitData;
}
//# sourceMappingURL=ParticleOrbitState.d.ts.map