import { Camera } from 'three';
import { BaseCollisionHandler } from './BaseCollisionHandler';
import { CorePlayer } from '../../../core/player/Player';
interface RotationRange {
    min: number;
    max: number;
}
interface MobileJoystickControlsDefaultParams {
    rotateSpeed: number;
    rotationRange: RotationRange;
}
export declare const DEFAULT_PARAMS: MobileJoystickControlsDefaultParams;
export interface MobileJoystickControlsOptions {
    translateDomElement?: HTMLElement;
    jumpDomElement?: HTMLElement;
    runDomElement?: HTMLElement;
}
export declare class MobileJoystickControls extends BaseCollisionHandler {
    private _camera;
    private domElement;
    private options;
    private player?;
    private translationData;
    private rotationData;
    private _boundMethods;
    private _startCameraRotation;
    private _rotationSpeed;
    private _rotationRange;
    private _azimuthalAngle;
    private _translateDomElement;
    private _translateDomElementRect;
    private _jumpDomElement;
    private _runDomElement;
    constructor(_camera: Camera, domElement: HTMLElement, options: MobileJoystickControlsOptions, player?: CorePlayer | undefined);
    dispose(): void;
    private _createTranslateDomElement;
    private _jumpDomElementSize;
    private _createJumpDomElement;
    private _createRunDomElement;
    private _addElements;
    private _removeElements;
    updateElements(): void;
    private _addEvents;
    private _removeEvents;
    setRotationSpeed(speed: number): void;
    setRotationRange(range: RotationRange): void;
    private vLeft;
    private vRight;
    private vTop;
    private vBottom;
    private angleY;
    private angleX;
    private _rotationStartPosition;
    private _rotationMovePosition;
    private _rotationDelta;
    private _onRotateStart;
    private _onRotateMove;
    private _onRotateEnd;
    private _rotateCamera;
    private _computeAzimuthalAngle;
    private _startCameraPosition;
    private _translationStartPosition;
    private _translationMovePosition;
    private _translationDelta;
    private _onTranslateStart;
    private _onTranslateMove;
    private _onTranslateEnd;
    private _updatePlayerTranslate;
    private _onJump;
    private _onRunToggle;
    update(delta: number): void;
    private _getTouch;
}
export {};
