import { ProjectOptions } from '../../config/interfaces'; import { Model } from '../../model'; import { QueryNode } from '../../query-tree'; import { FlexSearchTokenization } from '../../query-tree/flex-search'; import { DatabaseAdapter, ExecutionArgs, ExecutionResult, FlexSearchTokenizable } from '../database-adapter'; import { ArangoDBConfig } from './config'; import { SchemaMigration } from './schema-migration/migrations'; import { ArangoDBVersion } from './version-helper'; export declare class ArangoDBAdapter implements DatabaseAdapter { private readonly config; private schemaContext?; private readonly db; private readonly logger; private readonly analyzer; private readonly migrationPerformer; private readonly cancellationManager; private readonly versionHelper; private readonly doNonMandatoryMigrations; private readonly arangoExecutionFunction; constructor(config: ArangoDBConfig, schemaContext?: ProjectOptions | undefined); /** * Gets the javascript source code for a function that executes a transaction * @returns {string} */ private buildUpArangoExecutionFunction; execute(queryTree: QueryNode): Promise; executeExt({ queryTree, ...options }: ExecutionArgs): Promise; private processDatabaseError; private executeTransactionWithRetries; private isRetryableError; private executeTransactionOnce; /** * Compares the model with the database and determines migrations to do */ getOutstandingMigrations(model: Model): Promise>; /** * Performs a single mutation */ performMigration(migration: SchemaMigration): Promise; /** * Performs schema migration as configured with autocreateIndices/autoremoveIndices */ updateSchema(model: Model): Promise; getArangoDBVersion(): Promise; tokenizeExpressions(tokenizations: ReadonlyArray): Promise>; }