import type { TreeNode } from 'echarts/types/src/data/Tree';
import type GlobalModel from 'echarts/types/src/model/Global';
import type ExtensionAPI from 'echarts/types/src/core/ExtensionAPI';
import type { TwoWayTreeSeriesModelClazz as TwoWayTreeSeriesModel, TwoWayTreeSeriesNodeItemOption } from './TwoWayTreeSeries';
export declare const STATE: {
    /** 节点选中状态 */
    readonly SELECTED: "selected";
    /** 选中链路（祖先高亮） */
    readonly SELECTED_LINK: "selected_link";
};
export declare const NODE_TYPE: {
    /** 根节点 */
    readonly ROOT: "root";
    /** 普通节点 */
    readonly NORMAL: "normal";
    /** 分组节点 */
    readonly GROUP: "group";
};
export type LayoutInfo = {
    x: number;
    y: number;
    width?: number;
    space?: number;
    hasSibling?: boolean;
    isEdge?: boolean;
    noRender?: boolean;
    renderOption: TwoWayTreeSeriesNodeItemOption['render'];
};
export declare function layoutRootNode(node: TreeNode, seriesModel: TwoWayTreeSeriesModel): void;
export declare function layoutNormalNode(node: TreeNode, seriesModel: TwoWayTreeSeriesModel): void;
export declare function layoutGroupNode(node: TreeNode, seriesModel: TwoWayTreeSeriesModel): void;
export default function twoWayTreeLayout(ecModel: GlobalModel, api: ExtensionAPI): void;
