| import { VectorArray } from 'zrender/lib/core/vector.js'; | 
| declare type KDTreePoint = { | 
|     array: VectorArray; | 
| }; | 
| declare class KDTreeNode<T> { | 
|     left: KDTreeNode<T>; | 
|     right: KDTreeNode<T>; | 
|     axis: number; | 
|     data: T; | 
|     constructor(axis: number, data: T); | 
| } | 
| /** | 
|  * @constructor | 
|  * @alias module:echarts/data/KDTree | 
|  * @param {Array} points List of points. | 
|  * each point needs an array property to repesent the actual data | 
|  * @param {Number} [dimension] | 
|  *        Point dimension. | 
|  *        Default will use the first point's length as dimensiont | 
|  */ | 
| declare class KDTree<T extends KDTreePoint> { | 
|     dimension: number; | 
|     root: KDTreeNode<T>; | 
|     private _stack; | 
|     private _nearstNList; | 
|     constructor(points: T[], dimension?: number); | 
|     /** | 
|      * Resursively build the tree | 
|      */ | 
|     private _buildTree; | 
|     /** | 
|      * Find nearest point | 
|      * @param  target Target point | 
|      * @param  squaredDistance Squared distance function | 
|      * @return Nearest point | 
|      */ | 
|     nearest(target: T, squaredDistance: (a: T, b: T) => number): T; | 
|     _addNearest(found: number, dist: number, node: KDTreeNode<T>): void; | 
|     /** | 
|      * Find nearest N points | 
|      * @param  target Target point | 
|      * @param  N | 
|      * @param  squaredDistance Squared distance function | 
|      * @param  output Output nearest N points | 
|      */ | 
|     nearestN(target: T, N: number, squaredDistance: (a: T, b: T) => number, output: T[]): T[]; | 
| } | 
| export default KDTree; |