import { Ref } from 'vue';
import { Position, ViewMode } from '../../common/types';
export declare const DOUBLE_CLICK_THRESHOLD = 500;
export type SelectionMode = "container" | "node" | "edge" | "path";
export interface NodePointerState {
    pointerId: number;
    nodeId: string;
    moveCounter: number;
    dragBasePosition: Position;
    nodeBasePosition: Position;
    latestPosition: Position;
    eventTarget: EventTarget | null;
}
export interface EdgePointerState {
    pointerId: number;
    id: string | string[];
    eventTarget: EventTarget | null;
}
export interface PathPointerState {
    pointerId: number;
    id: string;
    eventTarget: EventTarget | null;
}
export interface ClickState {
    lastTime: number;
    count: number;
    id: string;
}
export interface InteractionModes {
    selectionMode: Ref<SelectionMode>;
    viewMode: Ref<ViewMode>;
}
export declare function getPointerMoveDetectionThreshold(type: string): number;
export declare function detectClicks(clickStates: Map<number, ClickState>, pointerId: number, id: string, event: MouseEvent): [MouseEvent, MouseEvent | undefined];
export declare function createClickEvents(clickState: ClickState | undefined, event: MouseEvent, id: string): [ClickState, MouseEvent, MouseEvent | undefined];
export declare function cleanClickState(states: Map<number, ClickState>): void;
