/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */
import { CameraOptions } from '../ViewerCamera';
import { TargetCamera, ICameraInput } from '../../loader/babylonjs-import';
/**
 * Manage the mouse inputs to control the movement of a PivotTargetCamera.
 * @see http://doc.babylonjs.com/how_to/customizing_camera_inputs
 */
export declare class TwinfinityTargetCameraMousePanInput<TCamera extends TargetCamera> implements ICameraInput<TCamera> {
    private readonly _cameraOptions;
    private _isPanning;
    private _srcElement?;
    private _pointerEvent?;
    private _onBeginFrameObservable;
    private _buttonThatCausedPan;
    constructor(_cameraOptions: CameraOptions);
    /**
     * This variable contains the Observable
     */
    private _onPointerInputObserver;
    /**
     * Defines the camera the input is attached to.
     */
    camera: TCamera;
    /**
     * Defines the buttons associated with the input to handle camera pan.
     * Middle mouse button is used as default (often invoked by pressing scroll wheel).
     *  0: No button or un-initialized
     *  1: Primary button (usually the left button)
     *  2: Secondary button (usually the right button)
     *  4: Auxiliary button (usually the mouse wheel button or middle button)
     *  8: 4th button (typically the "Browser Back" button)
     * 16 : 5th button (typically the "Browser Forward" button)
     * A button number can represent multiple buttons. For example button left and right is represented by 1 + 2 = 3.
     */
    buttons: number[];
    /**
     * 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;
    /**
     * Detach the current controls from the specified dom element.
     */
    detachControl(): void;
    /**
     * Checks if user is panning.
     */
    get isPanning(): boolean;
    /**
     * Gets the class name of the current input.
     * @returns the class name
     */
    getClassName(): string;
    /**
     * Get the friendly name associated with the input class.
     * @returns the input friendly name
     */
    getSimpleName(): string;
    /**
     * This function is run every time onPointerObservable fires
     */
    private onPointerInput;
    private onPan;
    private onPanStart;
    private onPanEnd;
}
//# sourceMappingURL=TwinfinityTargetCameraMousePanInput.d.ts.map