import type { Corestore, Hypercore, ReplicationStream, HyperDBInstance } from './db-types.js'; import type { LoggerInterface } from '@qvac/logging'; import { BaseDBAdapter } from './BaseDBAdapter.js'; import { HyperDBStorage, type HyperDBStorageInput } from './HyperDBStorage.js'; import type { LRUCache } from '../../utils/helper.js'; import type { EmbeddedDoc, HyperDBAdapterConfig, ReindexOpts, ReindexResult, SaveEmbeddingsOpts, SaveEmbeddingsResult, SearchParams, SearchResult } from '../../types.js'; export interface HyperDBAdapterInput extends HyperDBStorageInput { NUM_CENTROIDS?: number; BUCKET_SIZE?: number; centroidsTable?: string; invertedIndexTable?: string; } export declare class HyperDBAdapter extends BaseDBAdapter { protected readonly storage: HyperDBStorage; NUM_CENTROIDS: number; BUCKET_SIZE: number; centroidsTable: string; invertedIndexTable: string; centroids: number[][]; constructor(config?: HyperDBAdapterInput); get store(): Corestore | null; get db(): HyperDBInstance | null; get dbName(): string; get BATCH_SIZE(): number; get PROGRESS_INTERVAL(): number; get CACHE_SIZE(): number; get documentsTable(): string; get vectorsTable(): string; get configTable(): string; get hypercore(): Hypercore | null; get documentCache(): LRUCache; get vectorCache(): LRUCache; get logger(): LoggerInterface; get core(): Hypercore | null; saveEmbeddings(embeddedDocs: EmbeddedDoc[], opts?: SaveEmbeddingsOpts): Promise; deleteEmbeddings(ids: string[]): Promise; search(query: string, queryVector: number[], params?: SearchParams): Promise; reindex(opts?: ReindexOpts): Promise; _open(): Promise; _close(): Promise; getConfig(): Promise; replicateWith(otherHypercore: Hypercore): Promise<{ stream1: ReplicationStream; stream2: ReplicationStream; destroy: () => void; }>; private _writeBucketUpdates; private _pruneBuckets; private _kMeans; private _findTopNCentroids; private _initialize; private _checkIsInitialized; private _updateBuckets; private _getBucket; private _progressiveCentroidExpansion; }