import type { Vector2, Vector3 } from 'three'; export type ModifierKey = 'Alt' | 'Control' | 'Shift'; export enum MouseButton { 'Left' = 0, 'Middle' = 1, } export interface Selection { startPoint: Vector2; endPoint: Vector2; worldStartPoint: Vector2; worldEndPoint: Vector2; } export interface CanvasEvent { htmlPt: Vector3; cameraPt: Vector3; worldPt: Vector3; dataPt: Vector2; sourceEvent: T; } export interface CanvasEventCallbacks { onPointerDown?: (evt: CanvasEvent) => void; onPointerMove?: (evt: CanvasEvent) => void; onPointerUp?: (evt: CanvasEvent) => void; onWheel?: (evt: CanvasEvent) => void; } export interface InteractionInfo { shortcut: string; description: string; } export interface InteractionEntry { button: MouseButton | MouseButton[] | 'Wheel'; modifierKeys: ModifierKey[]; disabled?: boolean; } export interface CommonInteractionProps { modifierKey?: ModifierKey | ModifierKey[]; disabled?: boolean; }