import { Emitter } from 'mitt'; import { Ref } from 'vue'; import { Reactive, ReadonlyRef } from '../../common/common'; import { Configs } from '../../common/configs'; import { Events, Layouts, Rectangle } from '../../common/types'; import { EdgeStates } from '../../models/edge'; import { NodeStates } from '../../models/node'; import { PathStates } from '../../models/path'; import { BoxSelectionOption } from './boxSelection'; type NodeEventHandler = (node: string, event: T) => void; type EdgeEventHandler = (edge: string, event: T) => void; type EdgesEventHandler = (edges: string[], event: T) => void; type PathEventHandler = (path: string, event: T) => void; interface MouseEventHandlers { selectedNodes: Reactive>; hoveredNodes: Reactive>; selectedEdges: Reactive>; hoveredEdges: Reactive>; selectedPaths: Reactive>; hoveredPaths: Reactive>; handleNodePointerDownEvent: NodeEventHandler; handleNodePointerOverEvent: NodeEventHandler; handleNodePointerOutEvent: NodeEventHandler; handleNodeClickEvent: NodeEventHandler; handleNodeDoubleClickEvent: NodeEventHandler; handleNodeContextMenu: NodeEventHandler; handleEdgePointerDownEvent: EdgeEventHandler; handleEdgePointerOverEvent: EdgeEventHandler; handleEdgePointerOutEvent: EdgeEventHandler; handleEdgeClickEvent: EdgeEventHandler; handleEdgeDoubleClickEvent: EdgeEventHandler; handleEdgeContextMenu: EdgeEventHandler; handleEdgesPointerDownEvent: EdgesEventHandler; handleEdgesPointerOverEvent: EdgesEventHandler; handleEdgesPointerOutEvent: EdgesEventHandler; handleEdgesClickEvent: EdgesEventHandler; handleEdgesDoubleClickEvent: EdgesEventHandler; handleEdgesContextMenu: EdgesEventHandler; handlePathPointerDownEvent: PathEventHandler; handlePathPointerOverEvent: PathEventHandler; handlePathPointerOutEvent: PathEventHandler; handlePathClickEvent: PathEventHandler; handlePathDoubleClickEvent: PathEventHandler; handlePathContextMenu: PathEventHandler; isBoxSelectionMode: Ref; selectionBox: Ref; startBoxSelection: (options?: Partial) => void; stopBoxSelection: () => void; } export declare function provideMouseOperation(container: Ref, layouts: Readonly, zoomLevel: ReadonlyRef, nodeStates: NodeStates, edgeStates: EdgeStates, pathStates: PathStates, selectedNodes: Reactive>, selectedEdges: Reactive>, selectedPaths: Reactive>, hoveredNodes: Reactive>, hoveredEdges: Reactive>, hoveredPaths: Reactive>, isInCompatibilityModeForPath: Ref, isSvgWheelZoomEnabled: Ref, configs: Configs, emitter: Emitter): MouseEventHandlers; export declare function useMouseOperation(): MouseEventHandlers; export {};