import { VectorStore } from "./base.js"; import { Document } from "../document.js"; import { type Embeddings } from "../embeddings/base.js"; declare const IdColumnSymbol: unique symbol; declare const ContentColumnSymbol: unique symbol; type ColumnSymbol = typeof IdColumnSymbol | typeof ContentColumnSymbol; declare type Value = unknown; declare type RawValue = Value | Sql; declare class Sql { strings: string[]; constructor(rawStrings: ReadonlyArray, rawValues: ReadonlyArray); } type PrismaNamespace = { ModelName: Record; Sql: typeof Sql; raw: (sql: string) => Sql; }; type PrismaClient = { $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): Promise; $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): Promise; $transaction

[]>(arg: [...P]): Promise; }; type ObjectIntersect = { [P in keyof A & keyof B]: A[P] | B[P]; }; type ModelColumns> = { [K in keyof TModel]?: true | ColumnSymbol; }; type SimilarityModel = Record, TColumns extends ModelColumns = ModelColumns> = Pick> & { _distance: number | null; }; type DefaultPrismaVectorStore = PrismaVectorStore, string, ModelColumns>>; export declare class PrismaVectorStore, TModelName extends string, TSelectModel extends ModelColumns> extends VectorStore { tableSql: Sql; vectorColumnSql: Sql; selectSql: Sql; idColumn: keyof TModel & string; contentColumn: keyof TModel & string; static IdColumn: typeof IdColumnSymbol; static ContentColumn: typeof ContentColumnSymbol; protected db: PrismaClient; protected Prisma: PrismaNamespace; constructor(embeddings: Embeddings, config: { db: PrismaClient; prisma: PrismaNamespace; tableName: TModelName; vectorColumnName: string; columns: TSelectModel; }); static withModel>(db: PrismaClient): { create: >(embeddings: Embeddings, config: { prisma: TPrisma; tableName: keyof TPrisma["ModelName"] & string; vectorColumnName: string; columns: TColumns; }) => PrismaVectorStore; fromTexts: >(texts: string[], metadatas: TModel[], embeddings: Embeddings, dbConfig: { prisma: TPrisma_1; tableName: keyof TPrisma_1["ModelName"] & string; vectorColumnName: string; columns: TColumns_1; }) => Promise; fromDocuments: >(docs: Document[], embeddings: Embeddings, dbConfig: { prisma: TPrisma_2; tableName: keyof TPrisma_2["ModelName"] & string; vectorColumnName: string; columns: TColumns_2; }) => Promise>; }; addModels(models: TModel[]): Promise; addDocuments(documents: Document[]): Promise; addVectors(vectors: number[][], documents: Document[]): Promise; similaritySearch(query: string, k?: number): Promise>[]>; similaritySearchVectorWithScore(query: number[], k: number): Promise<[Document>, number][]>; static fromTexts(texts: string[], metadatas: object[], embeddings: Embeddings, dbConfig: { db: PrismaClient; prisma: PrismaNamespace; tableName: string; vectorColumnName: string; columns: ModelColumns>; }): Promise; static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: { db: PrismaClient; prisma: PrismaNamespace; tableName: string; vectorColumnName: string; columns: ModelColumns>; }): Promise; } export {};