import { ICursorPosition } from '../types/cursor';
export type Pos = {
    clientX: number;
    clientY: number;
    pointerId: number;
};
export type DragAnchor = {
    type: 'cursor';
    cursor: ICursorPosition;
} | {
    type: 'selection';
    anchor: ICursorPosition;
    focus: ICursorPosition;
};
export declare class CursorDragSession {
    pointerId: number | null;
    anchor: DragAnchor | null;
    dragging: boolean;
    lastMove: {
        x: number;
        y: number;
        hitId?: string;
        pos?: Pos;
    } | null;
    start(pointerId: number | null, anchor: DragAnchor): void;
    move(x: number, y: number, hitId?: string, pos?: Pos): void;
    end(): void;
}
