import type { Pool, PoolOptions } from "mysql2/promise"; import { VectorStore } from "./base.js"; import { Embeddings } from "../embeddings/base.js"; import { Document } from "../document.js"; export type Metadata = Record; export type DistanceMetrics = "DOT_PRODUCT" | "EUCLIDEAN_DISTANCE"; export interface ConnectionOptions extends PoolOptions { } type ConnectionWithUri = { connectionOptions?: never; connectionURI: string; }; type ConnectionWithOptions = { connectionURI?: never; connectionOptions: ConnectionOptions; }; type ConnectionConfig = ConnectionWithUri | ConnectionWithOptions; export type SingleStoreVectorStoreConfig = ConnectionConfig & { tableName?: string; contentColumnName?: string; vectorColumnName?: string; metadataColumnName?: string; distanceMetric?: DistanceMetrics; }; export declare class SingleStoreVectorStore extends VectorStore { connectionPool: Pool; tableName: string; contentColumnName: string; vectorColumnName: string; metadataColumnName: string; distanceMetric: DistanceMetrics; _vectorstoreType(): string; constructor(embeddings: Embeddings, config: SingleStoreVectorStoreConfig); createTableIfNotExists(): Promise; end(): Promise; addDocuments(documents: Document[]): Promise; addVectors(vectors: number[][], documents: Document[]): Promise; similaritySearchVectorWithScore(query: number[], k: number, filter?: Metadata): Promise<[Document, number][]>; static fromTexts(texts: string[], metadatas: object[], embeddings: Embeddings, dbConfig: SingleStoreVectorStoreConfig): Promise; static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: SingleStoreVectorStoreConfig): Promise; } export {};