import { Writable } from 'svelte/store'; import { InternalNode, Point } from '../..'; import { ContextMenu, EditorContextMenuBlueprint, NodeContextMenuBlueprint } from '../ContextMenu'; import Drag, { Position } from '../Drag'; export declare type InteractionContextMenu = { type: 'instance'; instance: ContextMenu; blueprint: T; } | { type: 'callback'; callback: C; }; export declare class Interaction { nodes: Writable>>; selectedNodesIds: string[]; position: Writable; options: { multiselect?: boolean; zoomable?: boolean; pannable?: boolean; moveable?: boolean; }; nodeMoving: boolean; containerMoving: boolean; previousCoordinates: Point; previousDistance?: number; dragger?: ReturnType; contextMenuOpen: boolean; editorContextMenu?: InteractionContextMenu void>; nodeContextMenu?: InteractionContextMenu void>; constructor(nodes: Writable>>, position: Writable, dragger?: ReturnType, options?: { multiselect?: boolean; zoomable?: boolean; pannable?: boolean; moveable?: boolean; }, contextMenuOptions?: { editorContextMenu?: InteractionContextMenu void>; nodeContextMenu?: InteractionContextMenu void>; }); private getCoordinates; zoom: (event: WheelEvent) => void; pinch: (event: TouchEvent) => number | void; startDrag: (event: MouseEvent | TouchEvent, contextMenuOpen?: boolean) => Point | void; drag: (event: MouseEvent | TouchEvent) => Point | void; touch: (event: TouchEvent) => void; dragNode: (event: MouseEvent | TouchEvent, key: string) => void; endDrag: () => void; openEditorContextMenu: (event: MouseEvent) => void; openNodeContextMenu: (event: MouseEvent, key: string) => void; }