import { Emitter } from 'mitt'; import { Ref } from 'vue'; import { Reactive } from '../common/common'; import { Configs } from '../common/configs'; import { Events, Edges, NodePositions, Nodes } from '../common/types'; import { SvgPanZoomInstance } from '../modules/svg-pan-zoom-ex'; export interface LayoutActivateParameters { layouts: Reactive; nodePositions: Ref; nodes: Ref; edges: Ref; configs: Readonly; scale: Readonly>; emitter: Emitter; svgPanZoom: SvgPanZoomInstance; } export interface LayoutHandler { activate(parameters: LayoutActivateParameters): void; deactivate(): void; }