import { Collection, DataAPIClient, Db } from "@datastax/astra-db-ts";
import type { BaseNode } from "../../Node.js";
import { VectorStoreBase, type IEmbedModel, type VectorStoreNoEmbedModel, type VectorStoreQuery, type VectorStoreQueryResult } from "./types.js";
export declare class AstraDBVectorStore extends VectorStoreBase implements VectorStoreNoEmbedModel {
    storesText: boolean;
    flatMetadata: boolean;
    idKey: string;
    contentKey: string;
    private astraClient;
    private astraDB;
    private collection;
    constructor(init?: Partial<AstraDBVectorStore> & {
        params?: {
            token: string;
            endpoint: string;
            namespace?: string;
        };
    } & Partial<IEmbedModel>);
    /**
     * Create a new collection in your Astra DB vector database and connects to it.
     * You must call this method or `connect` before adding, deleting, or querying.
     *
     * @param collection: your new colletion's name
     * @param options: CreateCollectionOptions used to set the number of vector dimensions and similarity metric
     * @returns Promise that resolves if the creation did not throw an error.
     */
    createAndConnect(collection: string, options?: Parameters<Db["createCollection"]>[1]): Promise<void>;
    /**
     * Connect to an existing collection in your Astra DB vector database.
     * You must call this method or `createAndConnect` before adding, deleting, or querying.
     *
     * @param collection: your existing colletion's name
     * @returns Promise that resolves if the connection did not throw an error.
     */
    connect(collection: string): Promise<void>;
    /**
     * Get an instance of your Astra DB client.
     * @returns the AstraDB client
     */
    client(): DataAPIClient;
    /**
     * Add your document(s) to your Astra DB collection.
     *
     * @returns and array of node ids which were added
     */
    add(nodes: BaseNode[]): Promise<string[]>;
    /**
     * Delete a document from your Astra DB collection.
     *
     * @param refDocId: the id of the document to delete
     * @param deleteOptions: DeleteOneOptions to pass to the delete query
     * @returns Promise that resolves if the delete query did not throw an error.
     */
    delete(refDocId: string, deleteOptions?: Parameters<Collection["deleteOne"]>[1]): Promise<void>;
    /**
     * Query documents from your Astra DB collection to get the closest match to your embedding.
     *
     * @param query: VectorStoreQuery
     * @param options: FindOptions
     */
    query(query: VectorStoreQuery, options?: Parameters<Collection["find"]>[1]): Promise<VectorStoreQueryResult>;
}
