import type { CreateAnalyzerOptions } from 'arangojs/analyzers'; import type { VectorIndexDescription } from 'arangojs/indexes'; import type { ArangoSearchViewPropertiesOptions, CreateArangoSearchViewOptions } from 'arangojs/views'; import type { Relation } from '../../core/model/implementation/relation.js'; import type { PersistentIndexDefinition } from './index-helpers.js'; import type { VectorIndexDefinition } from './vector-index/vector-index-definition.js'; export type SchemaMigration = CreateIndexMigration | DropIndexMigration | CreateVectorIndexMigration | RecreateVectorIndexMigration | DropVectorIndexMigration | CreateDocumentCollectionMigration | CreateEdgeCollectionMigration | CreateArangoSearchViewMigration | DropArangoSearchViewMigration | UpdateArangoSearchViewMigration | RecreateArangoSearchViewMigration | CreateArangoSearchAnalyzerMigration | UpdateArangoSearchAnalyzerMigration; interface CreateIndexMigrationConfig { readonly index: PersistentIndexDefinition; readonly collectionSize?: number; } export declare class CreateIndexMigration { readonly type: 'createIndex'; readonly index: PersistentIndexDefinition; readonly collectionSize: number | undefined; constructor(config: CreateIndexMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } interface DropIndexMigrationConfig { readonly index: PersistentIndexDefinition; readonly collectionSize?: number; } export declare class DropIndexMigration { readonly type: 'dropIndex'; readonly index: PersistentIndexDefinition; readonly collectionSize: number | undefined; constructor(config: DropIndexMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } interface CreateVectorIndexMigrationConfig { readonly requiredIndex: VectorIndexDefinition; readonly vectorDocumentCount?: number; } /** * Migration that creates a new vector index for the first time (no existing index is present). * The index is always created in slot 'a'. The actual index name is derived by the performer * using vectorIndexSlotName(field, 'a'). */ export declare class CreateVectorIndexMigration { readonly type: 'createVectorIndex'; readonly requiredIndex: VectorIndexDefinition; readonly vectorDocumentCount: number | undefined; constructor(config: CreateVectorIndexMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } interface RecreateVectorIndexMigrationConfig { readonly existingIndex: VectorIndexDescription; readonly requiredIndex: VectorIndexDefinition; readonly vectorDocumentCount?: number; } /** * Migration that recreates an existing vector index with updated parameters (e.g. changed metric, * dimension, or nLists). Uses the A/B slot naming scheme: the new index is created in the slot * opposite to the existing one, and the old index is dropped once the new one is ready. */ export declare class RecreateVectorIndexMigration { readonly type: 'recreateVectorIndex'; readonly existingIndex: VectorIndexDescription; readonly requiredIndex: VectorIndexDefinition; readonly vectorDocumentCount: number | undefined; constructor(config: RecreateVectorIndexMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } interface DropVectorIndexMigrationConfig { readonly collectionName: string; readonly index: VectorIndexDescription; } /** * Migration that drops a vector index, identified solely by its name. */ export declare class DropVectorIndexMigration { readonly type: 'dropVectorIndex'; readonly collectionName: string; readonly index: VectorIndexDescription; constructor(config: DropVectorIndexMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export declare class CreateDocumentCollectionMigration { readonly collectionName: string; readonly type: 'createDocumentCollection'; constructor(collectionName: string); get description(): string; get id(): string; get isMandatory(): boolean; } export declare class CreateEdgeCollectionMigration { readonly relation: Relation; readonly collectionName: string; readonly type: 'createEdgeCollection'; constructor(relation: Relation, collectionName: string); get description(): string; get id(): string; get isMandatory(): boolean; } interface CreateArangoSearchViewMigrationConfig { readonly viewName: string; readonly properties: CreateArangoSearchViewOptions; readonly collectionName: string; readonly collectionSize?: number; } interface UpdateArangoSearchViewMigrationConfig { readonly viewName: string; readonly properties: ArangoSearchViewPropertiesOptions; readonly collectionName: string; readonly collectionSize?: number; } interface DropArangoSearchViewMigrationConfig { readonly viewName: string; } export declare class DropArangoSearchViewMigration { readonly type: 'dropArangoSearchView'; readonly config: DropArangoSearchViewMigrationConfig; constructor(config: DropArangoSearchViewMigrationConfig); get description(): string; get id(): string; get viewName(): string; get isMandatory(): boolean; } export declare class UpdateArangoSearchViewMigration { readonly type: 'updateArangoSearchView'; readonly viewName: string; readonly properties: ArangoSearchViewPropertiesOptions; readonly collectionName: string; readonly collectionSize?: number; constructor(config: UpdateArangoSearchViewMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export declare class CreateArangoSearchViewMigration { readonly type: 'createArangoSearchView'; readonly viewName: string; readonly properties: CreateArangoSearchViewOptions; readonly collectionName: string; readonly collectionSize?: number; constructor(config: CreateArangoSearchViewMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export declare class RecreateArangoSearchViewMigration { readonly type: 'recreateArangoSearchView'; readonly viewName: string; readonly properties: CreateArangoSearchViewOptions; readonly collectionName: string; readonly collectionSize?: number; constructor(config: CreateArangoSearchViewMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export declare class CreateArangoSearchAnalyzerMigration { readonly type: 'createArangoSearchAnalyzer'; readonly name: string; readonly options: CreateAnalyzerOptions; constructor(config: CreateArangoSearchAnalyzerMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export interface CreateArangoSearchAnalyzerMigrationConfig { readonly name: string; readonly options: CreateAnalyzerOptions; } export declare class UpdateArangoSearchAnalyzerMigration { readonly type: 'updateArangoSearchAnalyzer'; readonly name: string; readonly options: CreateAnalyzerOptions; constructor(config: UpdateArangoSearchAnalyzerMigrationConfig); get description(): string; get id(): string; get isMandatory(): boolean; } export interface UpdateArangoSearchAnalyzerMigrationConfig { readonly name: string; readonly options: CreateAnalyzerOptions; } export {};