import { VectorStoreBase, type IEmbedModel, type MetadataFilters, type VectorStoreNoEmbedModel, type VectorStoreQuery, type VectorStoreQueryResult } from "./types.js";
import type { Index, ScoredPineconeRecord } from "@pinecone-database/pinecone";
import { type Pinecone } from "@pinecone-database/pinecone";
import type { BaseNode, Metadata } from "../../Node.js";
type PineconeParams = {
    indexName?: string;
    chunkSize?: number;
    namespace?: string;
    textKey?: string;
} & IEmbedModel;
/**
 * Provides support for writing and querying vector data in Pinecone.
 */
export declare class PineconeVectorStore extends VectorStoreBase implements VectorStoreNoEmbedModel {
    storesText: boolean;
    db?: Pinecone;
    indexName: string;
    namespace: string;
    chunkSize: number;
    textKey: string;
    constructor(params?: PineconeParams);
    private getDb;
    /**
     * Connects to the Pinecone account specified in environment vars.
     * This method also checks and creates the named index if not found.
     * @returns Pinecone client, or the error encountered while connecting/setting up.
     */
    client(): Promise<Pinecone>;
    index(): Promise<Index<import("@pinecone-database/pinecone").RecordMetadata>>;
    /**
     * Delete all records for the current index.
     * NOTE: This operation is not supported by Pinecone for "Starter" (free) indexes.
     * @returns The result of the delete query.
     */
    clearIndex(): Promise<void>;
    /**
     * Adds vector record(s) to the table.
     * @TODO Does not create or insert sparse vectors.
     * @param embeddingResults The Nodes to be inserted, optionally including metadata tuples.
     * @returns Due to limitations in the Pinecone client, does not return the upserted ID list, only a Promise resolve/reject.
     */
    add(embeddingResults: BaseNode<Metadata>[]): Promise<string[]>;
    protected saveChunk(idx: Index, chunk: any): Promise<boolean>;
    /**
     * Deletes a single record from the database by id.
     * NOTE: Uses the collection property controlled by setCollection/getCollection.
     * @param refDocId Unique identifier for the record to delete.
     * @param deleteKwargs Required by VectorStore interface.  Currently ignored.
     * @returns Promise that resolves if the delete query did not throw an error.
     */
    delete(refDocId: string, deleteKwargs?: any): Promise<void>;
    /**
     * Query the vector store for the closest matching data to the query embeddings
     * @TODO QUERY TYPES
     * @param query The VectorStoreQuery to be used
     * @param options Required by VectorStore interface.  Currently ignored.
     * @returns Zero or more Document instances with data from the vector store.
     */
    query(query: VectorStoreQuery, _options?: any): Promise<VectorStoreQueryResult>;
    /**
     * Required by VectorStore interface.  Currently ignored.
     * @param persistPath
     * @param fs
     * @returns Resolved Promise.
     */
    persist(persistPath: string): Promise<void>;
    toPineconeFilter(stdFilters?: MetadataFilters): any;
    textFromResultRow(row: ScoredPineconeRecord<Metadata>): string;
    metaWithoutText(meta: Metadata): any;
    nodeToRecord(node: BaseNode<Metadata>): {
        id: any;
        values: number[];
        metadata: Metadata;
    };
}
export {};
