export type DispatcherMode = 'None' | 'Viewer' | 'Layer';
export type PointerEventsListener = {
    start: (event: TouchEvent | MouseEvent) => boolean;
    move: (event: TouchEvent | MouseEvent) => boolean;
    end: (event: TouchEvent | MouseEvent) => boolean;
    multipleStart?: (event: TouchEvent) => void;
};
/**
 * Utility used to listen pointer and zoom gesture events for mobile devices.
 * */
export declare class GestureEventsDispatcher {
    _active: boolean;
    private _pointerListener?;
    _hostElement?: HTMLElement;
    _onGestureStartHandler: any;
    _onGestureStopHandler: any;
    _onMouseDownHandler: any;
    _onMouseMoveHandler: any;
    _onMouseUpHandler: any;
    _registeredElements: any;
    _docViewerId: string;
    private _lastEventKey;
    /**
     * Last clicked point, absolute coordinates related to browser viewport. Format [clientX, clientY]
     * @ignore exclude from docs.
     **/
    constructor(docViewerId: string);
    /**
     * GcPinchZoomGesture class constructor
     * @param hostElement DOM element, target container, used to listen touch events and used for zoom distance calculations
     */
    initialize(hostElement: HTMLElement): void;
    static instance(docViewerId: string): GestureEventsDispatcher;
    setPointerEvents(dispatcherMode: DispatcherMode, pointerListener: PointerEventsListener): void;
    clearPointerEvents(dispatcherMode?: DispatcherMode): void;
    registerForEvents(key: string, element: Document | HTMLElement): void;
    unregisterForEvents(key: string): void;
    private _registerEvents;
    get hasTouchNoPointerEvents(): boolean;
    get moveEventKey(): string;
    private _unregisterEvents;
    private _onGestureStart;
    private _onGestureStop;
    private _onMouseDown;
    private _onMouseMove;
    private _onMouseUp;
    _isEventDispatched(e: TouchEvent | MouseEvent): boolean;
    /**
     * The method can be called directly by any child instance to handle the touchend event as usual.
     * @param event
     */
    notifyTouchEnd(event: TouchEvent): void;
}
