import { BaseEdgeModel, BaseNodeModel, LogicFlow } from '@logicflow/core';
declare class Layout {
    private option;
    private lf;
    private paths;
    private targetPath;
    private targetNode;
    private targetStartNode;
    private targetPathIndex;
    private nodeMap;
    private edgeMap;
    constructor(lf: LogicFlow, option?: Record<any, any>);
    reset(): void;
    getBytesLength(word: string): number;
    /**
     * option: {
     *   rankdir: "TB", // layout 方向, 可选 TB, BT, LR, RL
     *   align: undefined, // 节点对齐方式，可选 UL, UR, DL, DR
     *   nodeSize: undefined, // 节点大小
     *   nodesepFunc: undefined, // 节点水平间距(px)
     *   ranksepFunc: undefined, // 每一层节点之间间距
     *   nodesep: 40, // 节点水平间距(px) 注意：如果有grid，需要保证nodesep为grid的偶数倍
     *   ranksep: 40, // 每一层节点之间间距 注意：如果有grid，需要保证ranksep为grid的偶数倍
     *   controlPoints: false, // 是否保留布局连线的控制点
     *   radial: false, // 是否基于 dagre 进行辐射布局
     *   focusNode: null, // radial 为 true 时生效，关注的节点
     * };
     */
    layout(node?: any, option?: Record<any, any>): Promise<void>;
    isOverlap(rect1: {
        minY: number;
        maxY: number;
        minX: number;
        maxX: number;
    }, rect2: {
        minX: any;
        minY: any;
        maxX: any;
        maxY: any;
    }): boolean;
    getLayoutData(path: Record<any, any>, option?: {}): Promise<any>;
    getPaths(..._args: any): any[];
    getPath(startNode: BaseNodeModel<LogicFlow.PropertiesType>): {
        nodes: BaseNodeModel<LogicFlow.PropertiesType>[];
        edges: BaseEdgeModel<LogicFlow.PropertiesType>[];
    };
    getNodesRect(nodes: any[]): {
        minX: any;
        minY: any;
        maxX: any;
        maxY: any;
    };
    pointFilter(points: {
        x: any;
        y: any;
    }[]): {
        x: any;
        y: any;
    }[];
    calcPointsList(model: BaseEdgeModel<LogicFlow.PropertiesType>, nodes: any[]): {
        x: any;
        y: any;
    }[] | undefined;
}
export default Layout;
