/** * HNSW Vector Index FFI Bindings * * Native vector search using HNSW (Hierarchical Navigable Small World) algorithm. * * @see sochdb-index/src/ffi.rs */ export interface SearchResult { id: string; distance: number; } export interface HnswConfig { dimension: number; maxConnections?: number; efConstruction?: number; efSearch?: number; } export declare class HnswBindings { private static instance; private lib; hnsw_new: any; hnsw_free: any; hnsw_insert: any; hnsw_insert_batch: any; hnsw_insert_flat: any; hnsw_insert_batch_flat: any; hnsw_search: any; hnsw_search_fast: any; hnsw_search_ultra: any; hnsw_len: any; hnsw_dimension: any; hnsw_set_ef_search: any; hnsw_get_ef_search: any; hnsw_build_flat_cache: any; private constructor(); static getInstance(): HnswBindings; } /** * High-level HNSW Index wrapper */ export declare class HnswIndex { private ptr; private bindings; private _dimension; private _efSearch; constructor(config: HnswConfig); /** * Insert a single vector */ insert(id: string, vector: number[]): void; /** * Insert multiple vectors in batch (faster) */ insertBatch(ids: string[], vectors: number[][]): void; /** * Search for k nearest neighbors */ search(queryVector: number[], k: number, fast?: boolean): SearchResult[]; /** * Ultra-fast search with minimal ef_search */ searchUltra(queryVector: number[], k: number): SearchResult[]; /** * Get number of vectors in index */ get length(): number; /** * Get vector dimension */ get dimension(): number; /** * Set ef_search parameter (controls search quality vs speed) */ set efSearch(value: number); /** * Get ef_search parameter */ get efSearch(): number; /** * Build flat cache for faster searches */ buildFlatCache(): void; /** * Free native resources */ close(): void; private stringToId; private idToString; } //# sourceMappingURL=hnsw-bindings.d.ts.map