import { Observable } from 'rxjs'; import type { Graph } from '../entities'; import type { AbstractLayout, DraftNormalGraphLayoutData, GraphOptions, LayoutAlgorithm, LayoutConfig, LayoutData } from '../types'; interface AbstractLayoutController { execute: LayoutAlgorithm; } export declare class LayoutController implements AbstractLayoutController { presetLayout?: AbstractLayout; graph: Graph; private destroyed; private isGPU?; private layoutMethod?; private worker?; private workerData; constructor(graph: Graph, layoutConfig?: GraphOptions['layout']); /** * 是否有 GPU 版本 * * @param layoutType * @returns */ static hasGPUVersion(layoutType: string): boolean; /** * 是否需要逐步迭代 * * @param layoutType * @returns */ static needTick(layoutType: string): boolean; /** * 获取默认布局配置 * * @returns 默认布局配置 */ getDefaultLayoutConfig: (layoutConfig: LayoutConfig) => any; /** * 执行一般图布局 */ execute: (data: DraftNormalGraphLayoutData, layoutConfig: LayoutConfig) => Observable; /** * 执行前置布局 */ /** * 通过 worker 计算布局 * * @param layoutConfig * @param data */ private layoutWithWorker; /** * 执行布局方法 * * @param layoutConfig * @param data */ private executeLayoutMethod; /** * 获取 worker 对象 * * @private */ private getWorker; /** * 停止 Worker * * @private */ private stopWorker; /** * 运行 web worker * * @param worker * @param data * @param layoutConfig * @private */ private runWebWorker; /** * 处理 worker 的消息 * * @param resolve * @param reject * @param event * @param data * @param layoutConfig * @private */ private handleWorkerMessage; initPositions: (center: [number, number] | undefined, nodes: DraftNormalGraphLayoutData['nodes'], canvasWidth: number, canvasHeight: number) => boolean; /** * 销毁布局方法 */ destroyLayoutMethods: () => void; /** * 销毁布局 */ destroy: () => void; } export {}; //# sourceMappingURL=layout-controller.d.ts.map