/**
 * @module viw-webgl-viewer/inputs
 */
import * as THREE from 'three';
import { BaseInputHandler } from './baseInputHandler';
/**
 * Manages user touch inputs.
 */
export declare class TouchHandler extends BaseInputHandler {
    private readonly TAP_DURATION_MS;
    private readonly DOUBLE_TAP_DELAY_MS;
    private readonly TAP_MAX_MOVE_PIXEL;
    private readonly ZOOM_SPEED;
    private readonly MOVE_SPEED;
    onTap: (position: THREE.Vector2) => void;
    onDoubleTap: (position: THREE.Vector2) => void;
    onDrag: (delta: THREE.Vector2) => void;
    onDoubleDrag: (delta: THREE.Vector2) => void;
    onPinchOrSpread: (delta: number) => void;
    constructor(canvas: HTMLCanvasElement);
    private _touch;
    private _touch1;
    private _touch2;
    private _touchStartTime;
    private _lastTapMs;
    private _touchStart;
    protected addListeners(): void;
    reset: () => void;
    private _onTap;
    private onTouchStart;
    private toRotation;
    private onTouchMove;
    private onTouchEnd;
    private isSingleTouch;
    private touchToVector;
    private average;
    /**
     * Returns the pixel size of the canvas.
     * @returns {THREE.Vector2} The pixel size of the canvas.
     */
    getCanvasSize(): THREE.Vector2;
}
