import type { ICopy, IEmpty, Pair } from "@thi.ng/api";
import type { DistanceFn, ReadonlyVec } from "@thi.ng/vectors";
import type { IRegionQuery, ISpatialSet } from "./api.js";
import { KdTreeMap } from "./kd-tree-map.js";
export declare class KdTreeSet<K extends ReadonlyVec> implements ICopy<KdTreeSet<K>>, IEmpty<KdTreeSet<K>>, IRegionQuery<K, K, number>, ISpatialSet<K> {
    protected tree: KdTreeMap<K, K>;
    constructor(dim: number, keys?: Iterable<K>, distanceFn?: DistanceFn);
    [Symbol.iterator](): Generator<K, void, unknown>;
    keys(): Generator<K, void, unknown>;
    values(): Generator<K, void, unknown>;
    get size(): number;
    get height(): number;
    get ratio(): number;
    copy(): KdTreeSet<K>;
    clear(): void;
    empty(): KdTreeSet<K>;
    add(key: K, eps?: number): boolean;
    into(ks: Iterable<K>, eps?: number): boolean;
    remove(key: K): boolean;
    has(key: K, eps?: number): boolean;
    get(key: K, eps?: number): K | undefined;
    query(q: K, maxDist: number, limit?: number, acc?: Pair<K, K>[]): Pair<K, K>[];
    queryKeys(q: K, maxDist: number, limit?: number, acc?: K[]): K[];
    queryValues(q: K, maxDist: number, limit?: number, acc?: K[]): K[];
}
//# sourceMappingURL=kd-tree-set.d.ts.map