type Metric = "angular" | "euclidean" | "manhattan" | "dot"; interface NearestNeighborsResult { neighbors: number[]; distances: number[]; } declare class AnnoyIndex { private index; constructor(f: number, metric?: Metric); addItem(index: number, vector: number[]): void; build(numTrees: number, numThreads?: number): void; unbuild(): void; save(filename: string, prefault?: boolean): void; load(filename: string, prefault?: boolean): void; unload(): void; getDistance(i: number, j: number): number; getNnsByItem(item: number, n: number, searchK: number, includeDistances: true): NearestNeighborsResult; getNnsByItem(item: number, n: number, searchK?: number, includeDistances?: false): number[]; getNnsByVector(vector: number[], n: number, searchK: number, includeDistances: true): NearestNeighborsResult; getNnsByVector(vector: number[], n: number, searchK?: number, includeDistances?: false): number[]; getNItems(): number; getNTrees(): number; getItem(item: number): number[]; setSeed(seed: number): void; onDiskBuild(filename: string): void; verbose(v: boolean): void; getF(): number; } export { AnnoyIndex, type Metric, type NearestNeighborsResult, AnnoyIndex as default };