import { Object3D } from "three";
import { Axes } from "../engine/engine_physics.types.js";
import { Behaviour } from "./Component.js";
/**
 * SmoothFollow makes the {@link Object3D} (`GameObject`) smoothly follow another target {@link Object3D}.
 * It can follow the target's position, rotation, or both.
 * @category Interactivity
 * @group Components
 */
export declare class SmoothFollow extends Behaviour {
    /**
     * The target to follow. If null, the GameObject will not move.
     */
    target: Object3D | null;
    /**
     * The factor to smoothly follow the target's position.
     * The value is clamped between 0 and 1. If 0, the GameObject will not follow the target's position.
     */
    followFactor: number;
    /**
     * The factor to smoothly follow the target's rotation.
     * The value is clamped between 0 and 1. If 0, the GameObject will not follow the target's rotation.
     */
    rotateFactor: number;
    positionAxes: Axes;
    flipForward: boolean;
    private static _invertForward;
    private _firstUpdate;
    /**
     * Update the position and rotation of the GameObject to follow the target.
     */
    onBeforeRender(): void;
    updateNow(hard: boolean): void;
}
