import type { NodeObj } from '../types/index'; export type OperationType = 'moveNode' | 'moveNodeAfter' | 'moveNodeBefore' | 'removeNode' | 'addChild' | 'copyNode' | 'reshapeNode' | 'insertSibling' | 'insertBefore' | 'insertParent' | 'moveUpNode' | 'moveDownNode' | 'beginEdit' | 'finishEdit'; export type Operation = { name: 'moveNode' | 'moveDownNode' | 'moveUpNode' | 'copyNode' | 'addChild' | 'insertParent' | 'insertBefore' | 'insertSibling' | 'beginEdit'; obj: NodeObj; } | { name: 'reshapeNode'; obj: NodeObj; origin: NodeObj; } | { name: 'finishEdit'; obj: NodeObj; origin: string; } | { name: 'moveNodeAfter' | 'moveNodeBefore' | 'moveNode'; obj: NodeObj; toObj: NodeObj; originParentId?: string; } | { name: 'removeNode'; obj: NodeObj; originSiblingId?: string; originParentId?: string; }; export type EventMap = { operation: (info: Operation) => void; selectNode: (nodeObj: NodeObj, e?: MouseEvent) => void; selectNewNode: (nodeObj: NodeObj) => void; unselectNode: () => void; expandNode: (nodeObj: NodeObj) => void; }; declare const Bus: { create void> = EventMap>(): { handlers: Record void)[]>; showHandler: () => void; addListener: (type: K, handler: T[K]) => void; fire: (type: K_1, ...payload: Parameters) => void; removeListener: (type: K_2, handler: T[K_2]) => void; }; }; export default Bus;