import { DataMigrator } from 'nxdb-old/src/plugins/migration'; import { RxSchema } from 'nxdb-old/src/rx-schema'; import { RxStorageInstance } from 'nxdb-old/src/types/rx-storage.interface'; import { WithAttachments } from 'nxdb-old/src/types/couchdb'; import { RxCollection } from 'nxdb-old/src/types/rx-collection'; import { RxDatabase } from 'nxdb-old/src/types/rx-database'; import { MaybePromise } from 'nxdb-old/src/types/util'; export type MigrationStrategy = ( oldDocumentData: WithAttachments, oldRxCollection: OldRxCollection ) => MaybePromise | null>; export type MigrationStrategies = { [toVersion: number]: MigrationStrategy; }; export interface OldRxCollection { version: number; schema: RxSchema; storageInstance: RxStorageInstance; dataMigrator: DataMigrator; newestCollection: RxCollection; database: RxDatabase; _migrate?: boolean; _migratePromise?: Promise; }