/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { Vector3, Scene, TargetCamera, Observable } from '../loader/babylonjs-import';
import { TwinfinityTargetCameraInputsManager } from './TwinfinityTargetCameraInputsManager';
/**
 * This represents a pivot target type of camera. It can be useful for navigating using only mouse and about a pivot position from mouse cursor pick input.
 */
export declare class PivotTargetCamera extends TargetCamera {
    private static readonly _tmp;
    private static readonly _tmpVector3;
    private static readonly _maxLocalCameraSpeed;
    private _rotationMatrix;
    readonly onMode: Observable<PivotTargetCamera>;
    /**
     * Instantiates a Pivot Target Camera.
     * This represents a Pivot Target type of camera. It can be useful for navigating using only mouse and about a pivot position from mouse cursor pick input.
     * @param name Define the name of the camera in the scene
     * @param position Define the start position of the camera in the scene
     * @param scene Define the scene the camera belongs to
     */
    constructor(name: string, position: Vector3, scene: Scene);
    /**
     * Define the input manager associated with the camera.
     */
    inputs: TwinfinityTargetCameraInputsManager;
    /**
     * Indicates whether camera is in topdown mode or not.
     */
    topDownMode: boolean;
    /**
     * Attach the input controls to a specific dom element to get the input from.
     * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
     */
    attachControl(noPreventDefault?: boolean): void;
    /**
     * Attach the input controls to a specific dom element to get the input from.
     * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl
     * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
     * BACK COMPAT SIGNATURE ONLY.
     */
    attachControl(ignored: any, noPreventDefault?: boolean): void;
    /**
     * Detach the current controls from the specified dom element.
     */
    detachControl(): void;
    /**
     * Detach the current controls from the specified dom element.
     * @param ignored defines an ignored parameter kept for backward compatibility. If you want to define the source input element, you can set engine.inputElement before calling camera.attachControl
     */
    detachControl(ignored: any): void;
    /**
     * Destroy the camera and release the current resources hold by it.
     */
    dispose(): void;
    /**
     * Gets the current object class name.
     * @return the class name
     */
    getClassName(): string;
    /**
     * Override _checkInputs in targetCamera.
     * This function calculates movement, rotation and zoom and apply it to camera position and target.
     */
    _checkInputs(): void;
    private _decideIfCameraNeedsToRotate;
    private invertedRotationMatrixToRef;
    private transformVectorInPlace;
    private yawPitchToRef;
}
//# sourceMappingURL=PivotTargetCamera.d.ts.map