import type { HierarchicalDatum, HierarchicalNodeElement, ViewBoxOptions } from '../interface/common'; export interface TreeOptions { direction?: 'horizontal' | 'vertical' | 'LR' | 'RL' | 'TB' | 'BT'; layoutType?: 'orthogonal' | 'radial'; alignType?: 'leaf' | 'depth'; linkWidth?: number | number[]; minNodeGap?: number; nodeKey?: string | number | ((datum: HierarchicalDatum) => string | number); } export type TreeTramsformOptions = TreeOptions & ViewBoxOptions & { flatten?: boolean; maxDepth?: number; }; export interface TreeNodeElement extends HierarchicalNodeElement { children?: TreeNodeElement[]; x?: number; y?: number; } export interface TreeLinkElement { source: TreeNodeElement; target: TreeNodeElement; x0?: number; y0?: number; x1?: number; y1?: number; key?: string; }