/** * @module @nhtio/adk/batteries/vector/pinecone */ import { BaseVectorStore } from "../contract"; import type { VectorFilter } from "../filters"; import type { SearchPlan, UpsertPlan, DeletePlan, CollectionSpec } from "../plan"; import type { VectorMatch, VectorStoreCapabilities, BaseVectorStoreOptions } from "../types"; export interface PineconeVectorStoreOptions extends BaseVectorStoreOptions { /** Pinecone API key. */ apiKey: string; /** Name of the Pinecone index this store operates against. */ index: string; /** * When set, the physical Pinecone namespace becomes `${namespacePrefix}__${collection}`. * The logical collection name the builder/base see is unchanged — only the physical * namespace string is prefixed. Lets callers (and the test suite) isolate otherwise * identically-named collections into distinct, uncontended namespaces. Pinecone * namespaces are implicit (born on first upsert), so a fresh prefix costs nothing. */ namespacePrefix?: string; /** Connection and authentication parameters for the backend. */ connection?: { controllerHostUrl?: string; }; } export declare class PineconeVectorStore extends BaseVectorStore { #private; readonly capabilities: VectorStoreCapabilities; /** Static availability probe: whether this adapter's runtime driver can load in the current environment. */ static isAvailable(): boolean; isAvailable(): boolean; connect(): Promise; close(): Promise; createCollection(spec: CollectionSpec, ifNotExists: boolean): Promise; dropCollection(collection: string, ifExists: boolean): Promise; hasCollection(collection: string): Promise; renameCollection(_from: string, _to: string): Promise; executeUpsert(plan: UpsertPlan): Promise; executeSearch(plan: SearchPlan): Promise; executeDelete(plan: DeletePlan): Promise; } /** Translate a neutral {@link VectorFilter} into a Pinecone metadata filter object. */ export declare const translatePineconeFilter: (filter?: VectorFilter) => Record | undefined;