/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { Vector3, Camera, Plane, DeepImmutable } from '../loader/babylonjs-import';
import { Vertex3 } from '../math';
/**
 * Extension of [Plane](https://doc.babylonjs.com/typedoc/classes/babylon.plane) with methods to keep the plane facing
 * a [Camera](https://doc.babylonjs.com/typedoc/classes/babylon.camera) and putting it in front of a Camera.
 */
export declare class PivotPlane extends Plane {
    private static readonly _tmpCameraDirection;
    private static readonly _tmpRay;
    private static readonly _tmpIdentityMatrix;
    private readonly _planeOrigin;
    /**
     * Default distance to a pivot plane.
     */
    static readonly DefaultDistanceToPivotPlane = 2;
    /**
     * Constructor to create empty pivot plane.
     */
    constructor();
    /**
     * Create empty pivot plane.
     */
    static Empty(): PivotPlane;
    /**
     * Origin of the plane. Will be (0,0,0) if neither {@link  update} or {@link putInFrontOfCamera}
     * has been called.
     */
    get Origin(): DeepImmutable<Vector3>;
    /**
     * Updates a existing pivot plane so it faces the camera.
     * @param camera Camera to reorient the pivot plane for.
     * @param planeOrigin Optional origin (point on) for plane. Will set {@link Origin}.
     * @returns Signed distance to pivot plane. Positive if the camera is in front. Otherwise false.
     */
    update(camera: Camera, planeOrigin?: Vertex3): number;
    /**
     * Puts the plane so it faces the camera at a distance of `distance` from the camera
     * @param camera {@link Camera} to position plane in front of.
     * @param distance Distance in front of `camera` to place the plane at
     */
    putInFrontOfCamera(camera: Camera, distance?: number): void;
    /**
     * Checks if plane is in front of the {@link camera} (`true`) or not (`false`).
     * @param camera {@link Camera}
     * @returns `true` if the plane is in front of the {@link camera}. Otherwise `false`.
     */
    isInFrontOfCamera(camera: Camera): boolean;
}
//# sourceMappingURL=PivotPlane.d.ts.map