import type { ProjectOptions } from '../../core/config/interfaces.js'; import type { Model } from '../../core/model/implementation/model.js'; import type { ArangoDBConfig } from '../config.js'; import type { SchemaMigration } from './migrations.js'; import { CreateDocumentCollectionMigration, CreateEdgeCollectionMigration, CreateIndexMigration, CreateVectorIndexMigration, DropIndexMigration, DropVectorIndexMigration, RecreateVectorIndexMigration } from './migrations.js'; export declare class SchemaAnalyzer { readonly config: ArangoDBConfig; private readonly db; private readonly logger; private readonly vectorIndexAnalyzer; constructor(config: ArangoDBConfig, schemaContext?: ProjectOptions); getOutstandingMigrations(model: Model): Promise>; getDocumentCollectionMigrations(model: Model): Promise>; getEdgeCollectionMigrations(model: Model): Promise>; /** * Returns migrations needed to bring persistent (non-vector) indexes in sync with the model. */ getPersistentIndexMigrations(model: Model): Promise>; /** * Returns migrations needed to bring vector indexes in sync with the model. * * Phase 1: For each vector-indexed field, call analyzeField() and collect migrations. * Phase 2: Drop orphaned vector indexes whose field is no longer in the model. */ getVectorIndexMigrations(model: Model): Promise>; private getPersistentIndices; /** * Calculates all required migrations to sync the arangodb-views with the model * @param model */ getArangoSearchMigrations(model: Model): Promise>; private getRequiredAnalyzers; }