/** * @module @nhtio/adk/batteries/vector/neo4j * * Neo4j adapter (native vector index, 5.13+). Each collection is a node label; records are * nodes with `id`/`vec`/`document`/`metadata` properties and a `VECTOR INDEX` on `vec`. KNN * uses `db.index.vector.queryNodes(index, k, vector)` (score is the similarity, already [0,1] * for cosine). Metadata is a JSON string property filtered with the neutral filter tree's JS * reference evaluator for exact cross-adapter parity. * * Driver: `neo4j-driver` (pure JS). Labels/index names can't be Cypher-parameterized, so they * are derived from the (sanitized) collection name; all values are parameterized. */ import { BaseVectorStore } from "../contract"; import type { SearchPlan, UpsertPlan, DeletePlan, CollectionSpec } from "../plan"; import type { VectorMatch, VectorStoreCapabilities, BaseVectorStoreOptions } from "../types"; export interface Neo4jVectorStoreOptions extends BaseVectorStoreOptions { /** Connection and authentication parameters for the backend. */ connection: { url: string; username?: string; password?: string; database?: string; }; } export declare class Neo4jVectorStore 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; }