| /** | 
|  * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing | 
|  *       the tree. | 
|  */ | 
| import * as layout from '../../util/layout.js'; | 
| import { TreeNode } from '../../data/Tree.js'; | 
| import TreeSeriesModel from './TreeSeries.js'; | 
| import ExtensionAPI from '../../core/ExtensionAPI.js'; | 
| interface HierNode { | 
|     defaultAncestor: TreeLayoutNode; | 
|     ancestor: TreeLayoutNode; | 
|     prelim: number; | 
|     modifier: number; | 
|     change: number; | 
|     shift: number; | 
|     i: number; | 
|     thread: TreeLayoutNode; | 
| } | 
| export interface TreeLayoutNode extends TreeNode { | 
|     parentNode: TreeLayoutNode; | 
|     hierNode: HierNode; | 
|     children: TreeLayoutNode[]; | 
| } | 
| /** | 
|  * Initialize all computational message for following algorithm. | 
|  */ | 
| export declare function init(inRoot: TreeNode): void; | 
| /** | 
|  * The implementation of this function was originally copied from "d3.js" | 
|  * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js> | 
|  * with some modifications made for this program. | 
|  * See the license statement at the head of this file. | 
|  * | 
|  * Computes a preliminary x coordinate for node. Before that, this function is | 
|  * applied recursively to the children of node, as well as the function | 
|  * apportion(). After spacing out the children by calling executeShifts(), the | 
|  * node is placed to the midpoint of its outermost children. | 
|  */ | 
| export declare function firstWalk(node: TreeLayoutNode, separation: SeparationFunc): void; | 
| /** | 
|  * The implementation of this function was originally copied from "d3.js" | 
|  * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js> | 
|  * with some modifications made for this program. | 
|  * See the license statement at the head of this file. | 
|  * | 
|  * Computes all real x-coordinates by summing up the modifiers recursively. | 
|  */ | 
| export declare function secondWalk(node: TreeLayoutNode): void; | 
| export declare function separation(cb?: SeparationFunc): SeparationFunc; | 
| /** | 
|  * Transform the common coordinate to radial coordinate. | 
|  */ | 
| export declare function radialCoordinate(rad: number, r: number): { | 
|     x: number; | 
|     y: number; | 
| }; | 
| /** | 
|  * Get the layout position of the whole view. | 
|  */ | 
| export declare function getViewRect(seriesModel: TreeSeriesModel, api: ExtensionAPI): layout.LayoutRect; | 
| interface SeparationFunc { | 
|     (node1: TreeLayoutNode, node2: TreeLayoutNode): number; | 
| } | 
| export {}; |