import type { VisualizationOptions } from '../../types'; /** * Indented tree node data — only name + optional children, no description. * Aligns with the official G6 indented tree example data structure. */ export interface IndentedTreeData { name: string; children?: IndentedTreeData[]; } /** * IndentedTreeConfig defines the configuration for rendering the indented tree. */ export interface IndentedTreeConfig { type?: 'indented-tree'; data: IndentedTreeData; theme?: 'default' | 'academy' | 'dark'; title?: string; /** Layout direction: 'LR' = root left (default), 'RL' = root right, 'H' = root center */ direction?: 'LR' | 'RL' | 'H'; style?: { backgroundColor?: string; palette?: string[]; }; } /** * IndentedTreeInstance represents a chart instance with render and destroy methods. */ export interface IndentedTreeInstance { render: (config: IndentedTreeConfig) => void; destroy: () => void; zoomTo: (zoom: number) => void; getZoom: () => number | undefined; } /** * IndentedTree — G6 5 indented layout for static DSL trees (no collapse/add UI). * Uses built-in `rect` nodes and `line` edges. Tree edges must have explicit ids (see render) to avoid * colliding with path-based node ids under G6's default `${source}-${target}` edge id rule. * Based on: https://g6.antv.antgroup.com/examples/scene-case/tree-graph#indented-tree */ export declare const IndentedTree: (options: VisualizationOptions) => IndentedTreeInstance;