/** * Base Vector Store - Abstract class for vector database integrations * Matches mastra's MastraVector pattern */ export interface VectorDocument { id: string; vector: number[]; metadata?: Record; content?: string; } export interface QueryResult { id: string; score: number; metadata?: Record; content?: string; vector?: number[]; } export interface IndexStats { dimension: number; count: number; metric: 'cosine' | 'euclidean' | 'dotProduct'; } export interface CreateIndexParams { indexName: string; dimension: number; metric?: 'cosine' | 'euclidean' | 'dotProduct'; } export interface UpsertParams { indexName: string; vectors: VectorDocument[]; } export interface QueryParams { indexName: string; vector: number[]; topK?: number; filter?: Record; includeMetadata?: boolean; includeVectors?: boolean; } export interface DeleteParams { indexName: string; ids?: string[]; filter?: Record; } /** * Abstract base class for vector store implementations */ export declare abstract class BaseVectorStore { readonly id: string; readonly name: string; constructor(config: { id: string; name?: string; }); /** * Create a new index */ abstract createIndex(params: CreateIndexParams): Promise; /** * List all indexes */ abstract listIndexes(): Promise; /** * Get index statistics */ abstract describeIndex(indexName: string): Promise; /** * Delete an index */ abstract deleteIndex(indexName: string): Promise; /** * Upsert vectors into an index */ abstract upsert(params: UpsertParams): Promise; /** * Query vectors by similarity */ abstract query(params: QueryParams): Promise; /** * Delete vectors by ID or filter */ abstract delete(params: DeleteParams): Promise; /** * Update vector metadata */ abstract update(indexName: string, id: string, metadata: Record): Promise; } /** * In-memory vector store for testing and development */ export declare class MemoryVectorStore extends BaseVectorStore { private indexes; constructor(config?: { id: string; }); createIndex(params: CreateIndexParams): Promise; listIndexes(): Promise; describeIndex(indexName: string): Promise; deleteIndex(indexName: string): Promise; upsert(params: UpsertParams): Promise; query(params: QueryParams): Promise; delete(params: DeleteParams): Promise; update(indexName: string, id: string, metadata: Record): Promise; private calculateSimilarity; private cosineSimilarity; private euclideanDistance; private dotProduct; private matchesFilter; } export declare function createMemoryVectorStore(id?: string): MemoryVectorStore;