/** * ArangoDB Graph Database Adapter * * Implements the BaseGraphAdapter for ArangoDB. * ArangoDB is a multi-model database that supports documents, graphs, and key-value. * Uses AQL (ArangoDB Query Language) for graph operations. */ import { BaseGraphAdapter, IAdapterConnectionOptions } from './base.adapter'; import { GraphType, GraphFeature } from '../types/enums'; import { IGraphConnectionResult, IGraphTestConnectionResult } from '../types/connection.interface'; import { ICreateNodeOptions, ICreateNodeResult, IFindNodesOptions, IFindNodesResult, IUpdateNodeOptions, IUpdateNodeResult, IDeleteNodeOptions, IDeleteNodeResult, IMergeNodeOptions, IMergeNodeResult, INode, IAddLabelsOptions, IAddLabelsResult, IRemoveLabelsOptions, IRemoveLabelsResult, ISetLabelsOptions, ISetLabelsResult } from '../types/node.interface'; import { ICreateRelationshipOptions, ICreateRelationshipResult, IFindRelationshipsOptions, IFindRelationshipsResult, IUpdateRelationshipOptions, IUpdateRelationshipResult, IDeleteRelationshipOptions, IDeleteRelationshipResult, IMergeRelationshipOptions, IMergeRelationshipResult, IRelationship, ICreateRelationshipIndexOptions } from '../types/relationship.interface'; import { ITraverseOptions, ITraverseResult, IShortestPathOptions, IShortestPathResult, IAllPathsOptions, IAllPathsResult, INeighborhoodOptions, INeighborhoodResult, IConnectedComponentsOptions, IConnectedComponentsResult } from '../types/traversal.interface'; import { IGraphTransaction } from '../types/transaction.interface'; import { IRawQueryOptions, IRawQueryResult, ICountNodesResult, ICountRelationshipsResult, IGraphStatistics, IFullTextSearchOptions, IFullTextSearchResult, IVectorSearchOptions, IVectorSearchResult, IGraphWhereClause } from '../types/query.interface'; import { ICreateNodeIndexOptions, ICreateNodeConstraintOptions, IListIndexesResult, IListConstraintsResult, ICreateIndexResult, ICreateConstraintResult, IDropIndexResult, IDropConstraintResult, IListLabelsResult, IListRelationshipTypesResult } from '../types/schema.interface'; /** * ArangoDB adapter using arangojs */ export declare class ArangoDBAdapter extends BaseGraphAdapter { protected readonly graphType = GraphType.ARANGODB; protected readonly supportedFeatures: Set; private db; private graph; private graphName; private vertexCollections; private edgeCollections; /** * Connect to ArangoDB */ connect(options: IAdapterConnectionOptions): Promise; private getVersion; /** * Disconnect from ArangoDB */ disconnect(): Promise; /** * Test ArangoDB connection */ testConnection(options: IAdapterConnectionOptions): Promise; createNode(options: ICreateNodeOptions, transaction?: IGraphTransaction): Promise>; findNodes(options: IFindNodesOptions, transaction?: IGraphTransaction): Promise>; findNodeById(id: string | number, transaction?: IGraphTransaction): Promise | null>; updateNode(options: IUpdateNodeOptions, transaction?: IGraphTransaction): Promise>; deleteNode(options: IDeleteNodeOptions, transaction?: IGraphTransaction): Promise; mergeNode(options: IMergeNodeOptions, transaction?: IGraphTransaction): Promise>; addLabels(options: IAddLabelsOptions, _transaction?: IGraphTransaction): Promise>; removeLabels(options: IRemoveLabelsOptions, _transaction?: IGraphTransaction): Promise>; setLabels(options: ISetLabelsOptions, _transaction?: IGraphTransaction): Promise>; createRelationship(options: ICreateRelationshipOptions, transaction?: IGraphTransaction): Promise>; findRelationships(options: IFindRelationshipsOptions, transaction?: IGraphTransaction): Promise>; findRelationshipById(id: string | number, transaction?: IGraphTransaction): Promise | null>; updateRelationship(options: IUpdateRelationshipOptions, transaction?: IGraphTransaction): Promise>; deleteRelationship(options: IDeleteRelationshipOptions, transaction?: IGraphTransaction): Promise; mergeRelationship(options: IMergeRelationshipOptions, transaction?: IGraphTransaction): Promise>; traverse(options: ITraverseOptions, transaction?: IGraphTransaction): Promise>; shortestPath(options: IShortestPathOptions, transaction?: IGraphTransaction): Promise>; allPaths(options: IAllPathsOptions, transaction?: IGraphTransaction): Promise>; getNeighborhood(options: INeighborhoodOptions, transaction?: IGraphTransaction): Promise>; findConnectedComponents(options: IConnectedComponentsOptions, transaction?: IGraphTransaction): Promise>; countNodes(labels?: string[], where?: IGraphWhereClause, transaction?: IGraphTransaction): Promise; countRelationships(types?: string[], where?: IGraphWhereClause, transaction?: IGraphTransaction): Promise; getStatistics(transaction?: IGraphTransaction): Promise; fullTextSearch(options: IFullTextSearchOptions, transaction?: IGraphTransaction): Promise>; vectorSearch(options: IVectorSearchOptions, transaction?: IGraphTransaction): Promise>; query(options: IRawQueryOptions, transaction?: IGraphTransaction): Promise>; createNodeIndex(options: ICreateNodeIndexOptions): Promise; createNodeConstraint(options: ICreateNodeConstraintOptions): Promise; createRelationshipIndex(options: ICreateRelationshipIndexOptions): Promise; listIndexes(): Promise; listConstraints(): Promise; dropIndex(name: string): Promise; dropConstraint(name: string): Promise; listLabels(): Promise; listRelationshipTypes(): Promise; beginTransaction(): Promise; commitTransaction(transaction: IGraphTransaction): Promise; rollbackTransaction(transaction: IGraphTransaction): Promise; private mapDirection; private mapIndexType; protected buildWhereClause(where: IGraphWhereClause): any; parseError(error: unknown): Error; private buildArangoWhereClause; private cleanArangoProps; private resolveNodeId; }