import { VectorArray } from 'zrender/lib/core/vector.js'; declare type KDTreePoint = { array: VectorArray; }; declare class KDTreeNode { left: KDTreeNode; right: KDTreeNode; 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 { dimension: number; root: KDTreeNode; 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): 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;