import { ShaderBase, _Render_RenderableBase, AnimationRegisterData, IRenderContainer } from '@awayjs/renderer';
import { AnimationElements } from '../data/AnimationElements';
import { ParticleFollowNode } from '../nodes/ParticleFollowNode';
import { ParticleAnimator } from '../ParticleAnimator';
import { ParticleStateBase } from './ParticleStateBase';
/**
 * ...
 */
export declare class ParticleFollowState extends ParticleStateBase {
    /** @private */
    static FOLLOW_POSITION_INDEX: number;
    /** @private */
    static FOLLOW_ROTATION_INDEX: number;
    private _particleFollowNode;
    private _followTarget;
    private _targetPos;
    private _targetEuler;
    private _prePos;
    private _preEuler;
    private _smooth;
    private _temp;
    constructor(animator: ParticleAnimator, particleFollowNode: ParticleFollowNode);
    get followTarget(): IRenderContainer;
    set followTarget(value: IRenderContainer);
    get smooth(): boolean;
    set smooth(value: boolean);
    /**
     * @inheritDoc
     */
    setRenderState(shader: ShaderBase, renderable: _Render_RenderableBase, animationElements: AnimationElements, animationRegisterData: AnimationRegisterData): void;
    private processPosition;
    private precessRotation;
    private processPositionAndRotation;
}
//# sourceMappingURL=ParticleFollowState.d.ts.map