import { Client } from "@elastic/elasticsearch"; import { Embeddings } from "../embeddings/base.js"; import { Document } from "../document.js"; import { VectorStore } from "./base.js"; type ElasticKnnEngine = "hnsw"; type ElasticSimilarity = "l2_norm" | "dot_product" | "cosine"; interface VectorSearchOptions { readonly engine?: ElasticKnnEngine; readonly similarity?: ElasticSimilarity; readonly m?: number; readonly efConstruction?: number; readonly candidates?: number; } export interface ElasticClientArgs { readonly client: Client; readonly indexName?: string; readonly vectorSearchOptions?: VectorSearchOptions; } type ElasticFilter = object; export declare class ElasticVectorSearch extends VectorStore { FilterType: ElasticFilter; private readonly client; private readonly indexName; private readonly engine; private readonly similarity; private readonly efConstruction; private readonly m; private readonly candidates; _vectorstoreType(): string; constructor(embeddings: Embeddings, args: ElasticClientArgs); addDocuments(documents: Document[], options?: { ids?: string[]; }): Promise; addVectors(vectors: number[][], documents: Document[], options?: { ids?: string[]; }): Promise; similaritySearchVectorWithScore(query: number[], k: number, filter?: ElasticFilter | undefined): Promise<[Document, number][]>; delete(params: { ids: string[]; }): Promise; static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, args: ElasticClientArgs): Promise; static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: ElasticClientArgs): Promise; static fromExistingIndex(embeddings: Embeddings, dbConfig: ElasticClientArgs): Promise; private ensureIndexExists; private buildMetadataTerms; doesIndexExist(): Promise; deleteIfExists(): Promise; } export {};