/** * PostgreSQL Vector Store with pgvector * * Provides vector similarity search using PostgreSQL with: * - pgvector extension for vector embeddings * - Full-text search using tsvector/tsquery * - Hybrid search with RRF (Reciprocal Rank Fusion) * * Requires PostgreSQL with pgvector extension installed. * See docs/STORAGE.md for setup instructions. */ import { IVectorStore, VectorDocument, VectorSearchResult } from '../interfaces'; export interface PostgresVectorStoreConfig { host: string; port: number; database: string; user: string; password: string; maxConnections?: number; } export declare class PostgresVectorStore implements IVectorStore { private config; private pool; private initialized; constructor(config: PostgresVectorStoreConfig); /** * Initialize schema (create tables if not exist) */ initialize(): Promise; upsert(doc: Omit): Promise; upsertMany(docs: Array>): Promise; searchByVector(embedding: number[], projectId: string, limit?: number): Promise; searchByText(query: string, projectId: string, limit?: number): Promise; searchHybrid(query: string, embedding: number[], projectId: string, limit?: number): Promise; getById(id: string): Promise; getFileEmbeddings(projectId: string, filePaths: string[]): Promise>; getFilePathsForDir(projectId: string, dirPath: string): Promise; deleteByFilePathPrefix(projectId: string, prefix: string): Promise; deleteByProject(projectId: string): Promise; delete(id: string): Promise; deleteByFiles(projectId: string, filePaths: string[]): Promise; getFileHashes(projectId: string): Promise>; count(projectId: string): Promise; countFiles(projectId: string): Promise; getFileMetadata(projectId: string, filePath: string): Promise<{ fileHash: string; indexedAt: string; } | null>; flush(): Promise; close(): Promise; /** * Test connection health */ healthCheck(): Promise; private rowToDocument; } //# sourceMappingURL=postgres-vector-store.d.ts.map