import type { Vec } from "../types"; declare class Node { parent: Node | null; point: T; left: Node | null; right: Node | null; constructor(point: T); } type KDTreeOptions = { clone?: boolean; }; export declare class KDTree implements Iterable> { #private; constructor(data?: Vec[], options?: KDTreeOptions); get dimensions(): number; get tree(): Node> | null; [Symbol.iterator](): IterableIterator>; insert(point: Vec): void; remove(point: Vec): Vec | null | void; has(point: Vec): boolean; size(): number; nearestNeighbor(point: Vec): { point: Vec | null; distance: number; }; } export {};