/** * Vector Storage Engine - AI embeddings and similarity search * Part of CBD Universal Database Phase 2 */ import { EventEmitter } from 'events'; export interface VectorRecord { id: string; vector: number[]; metadata: Record; norm?: number; timestamp: Date; } export interface SimilarityResult { id: string; score: number; vector: number[]; metadata: Record; distance: number; } export interface VectorIndex { name: string; dimensions: number; algorithm: 'cosine' | 'euclidean' | 'dot_product' | 'hamming'; vectors: Map; indexStructure?: any; } export interface VectorSearchOptions { limit?: number; threshold?: number; includeMetadata?: boolean; filters?: Record; } export interface HybridResult extends SimilarityResult { textScore?: number; combinedScore: number; } export interface VectorStats { totalVectors: number; dimensions: number; indexSize: number; averageNorm: number; searchLatency: { p50: number; p95: number; p99: number; }; } export declare class VectorStorageEngine extends EventEmitter { private indexes; private defaultIndex; private stats; constructor(); /** * Initialize method for CBD service compatibility */ initialize(): Promise; search(collection: string, vector: number[], options?: VectorSearchOptions): Promise; /** * Insert method for CBD service compatibility */ insert(id: string, vector: number[], metadata?: Record): Promise; /** * Store a vector with metadata */ storeVector(id: string, vector: number[], metadata?: Record, indexName?: string): Promise; /** * Store multiple vectors in batch */ storeVectorsBatch(vectors: Array<{ id: string; vector: number[]; metadata?: Record; }>, indexName?: string): Promise; /** * Find similar vectors using various similarity metrics */ findSimilar(queryVector: number[], options?: VectorSearchOptions, indexName?: string): Promise; /** * Hybrid search combining vector similarity and metadata filtering */ hybridSearch(queryVector: number[], textQuery?: string, options?: VectorSearchOptions & { textWeight?: number; vectorWeight?: number; }, indexName?: string): Promise; /** * Update a vector and its metadata */ updateVector(id: string, vector: number[], metadata?: Record, indexName?: string): Promise; /** * Delete a vector from the index */ deleteVector(id: string, indexName?: string): Promise; /** * Create a new vector index */ createVectorIndex(name: string, dimensions: number, algorithm?: 'cosine' | 'euclidean' | 'dot_product' | 'hamming'): Promise; /** * Drop a vector index */ dropVectorIndex(name: string): Promise; /** * Get vector by ID */ getVector(id: string, indexName?: string): Promise; /** * Get index statistics */ getIndexStats(indexName?: string): Promise; /** * List all vector indexes */ listIndexes(): Promise; /** * Bulk delete vectors by metadata filter */ deleteByFilter(filters: Record, indexName?: string): Promise; private getOrCreateIndex; private calculateNorm; private calculateSimilarity; private cosineSimilarity; private euclideanSimilarity; private dotProduct; private matchesFilters; private calculateTextSimilarity; private trackLatency; private percentile; } //# sourceMappingURL=VectorStorageEngine.d.ts.map