import { Vector } from "../common/entities/Core/Vector"; import { MouseButton } from "../common/entities/Abilities/Draggable/BaseDraggable"; import { BaseEventMap } from "../common/entities/Core/EventEmitter"; export interface BaseEntity { id?: string; position: Vector; size: Vector; children: BaseEntity[]; parent?: BaseEntity | null; content?: any; [key: string]: any; } export interface BaseRawData { id?: string; position?: { x: number; y: number; } | Vector; size?: { x: number; y: number; } | Vector; content?: any; [key: string]: any; } export interface BaseRawTreeNodeData extends BaseRawData { children?: BaseRawTreeNodeData[]; } export interface BaseRawFlatNodeData extends BaseRawData { parentId?: string; } /** 构造函数和 setRootEntityData 接受的输入数据类型 */ export declare type InputDataType = TEntity | TRawTreeNode | TRawFlatNode[]; export interface BaseStyleOptions { [key: string]: any; } export interface BaseDragOptions { enableEntityDrag?: boolean; enableCanvasDrag?: boolean; dragEntityButton?: MouseButton[] | MouseButton; dragCanvasButton?: MouseButton[] | MouseButton; useThrottle?: boolean; } export interface BaseZoomOptions { enableWheelZoom?: boolean; zoomStep?: number; invertWheelDirection?: boolean; minZoom?: number; maxZoom?: number; } /** 通用可视化器选项 */ export interface BaseVisualizerOptions { initialOffset?: { x?: number; y?: number; }; style?: TStyle; dragOptions?: TDrag; zoomOptions?: TZoom; contentCallback?: (originalDataOrEntity: TRawData | TEntity) => string | HTMLElement | HTMLElement[]; } export declare enum BaseVisualizerEvent { ENTITY_DESTROYED = "entity:destroyed", LAYOUT_UPDATED = "layout:updated", VISUALIZER_DESTROYED = "visualizer:destroyed" } export interface BaseEntityDestroyedEvent { entity: TEntity; originalData: TRawData | TEntity; } export interface BaseLayoutUpdatedEvent { } export interface BaseVisualizerEventMap extends BaseEventMap { [BaseVisualizerEvent.ENTITY_DESTROYED]: BaseEntityDestroyedEvent; [BaseVisualizerEvent.LAYOUT_UPDATED]: BaseLayoutUpdatedEvent; [BaseVisualizerEvent.VISUALIZER_DESTROYED]: void; } export declare const DEFAULT_BASE_DRAG_ENTITY_BUTTON = MouseButton.Left; export declare const DEFAULT_BASE_DRAG_CANVAS_BUTTON: MouseButton[];