import { Vector2 } from "three";
import { ViralMouseEventType } from "../../..";
import type { ViralViewerApi } from "../../../viral-viewer-api";
export declare class ViralMouse {
    viralViewerApi: ViralViewerApi;
    position: Vector2;
    rawPosition: Vector2;
    private mouseMoveQueuedEvents;
    private mouseDownLeftQueuedEvents;
    private mouseUpLeftQueuedEvents;
    private mouseDownRightQueuedEvents;
    private mouseUpRightQueuedEvents;
    private mouseDoubleClickQueuedEvents;
    constructor(viralViewerApi: ViralViewerApi);
    private setupMousePositionUpdate;
    /**
     *
     * @param type Mouse type event
     * @param key key of action
     * @param resolve callback
     */
    addEventListener(type: ViralMouseEventType, key: string, resolve: (result: any) => void): void;
    removeEventListener(type: ViralMouseEventType, key: string): void;
    getAllEventListener(): void;
    private setupMouseDown;
    private handleClick;
    private setupMouseUp;
    private handleMouseUp;
    private setupMouseDoubleClick;
    private handleMouseDoubleClick;
}
