import { ShaderMacro } from "../../shader/ShaderMacro";
import { ShaderProperty } from "../../shader/ShaderProperty";
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
/**
 * Rotate particles throughout their lifetime.
 */
export declare class RotationOverLifetimeModule extends ParticleGeneratorModule {
    static readonly _constantModeMacro: ShaderMacro;
    static readonly _curveModeMacro: ShaderMacro;
    static readonly _isSeparateMacro: ShaderMacro;
    static readonly _isRandomTwoMacro: ShaderMacro;
    static readonly _minConstantProperty: ShaderProperty;
    static readonly _minCurveXProperty: ShaderProperty;
    static readonly _minCurveYProperty: ShaderProperty;
    static readonly _minCurveZProperty: ShaderProperty;
    static readonly _maxConstantProperty: ShaderProperty;
    static readonly _maxCurveXProperty: ShaderProperty;
    static readonly _maxCurveYProperty: ShaderProperty;
    static readonly _maxCurveZProperty: ShaderProperty;
    /** Specifies whether the rotation is separate on each axis, when disabled, only `rotationZ` is used. */
    separateAxes: boolean;
    /** Rotation over lifetime for x axis, in degrees. */
    rotationX: ParticleCompositeCurve;
    /** Rotation over lifetime for y axis, in degrees. */
    rotationY: ParticleCompositeCurve;
    /** Rotation over lifetime for z axis, in degrees. */
    rotationZ: ParticleCompositeCurve;
    private _rotationMinConstant;
    private _rotationMaxConstant;
    private _enableSeparateMacro;
    private _modeMacro;
    private _isRandomTwoMacro;
}
