import { Config } from '../fileStores'; import { FileSystem } from '../fileSystems'; import { Logger } from '../logger'; import { IDatabase, IDatabaseTransaction } from '../storage'; import { Wallet } from '../wallet'; export declare enum Database { WALLET = "wallet", BLOCKCHAIN = "blockchain" } export type MigrationContext = { config: Config; files: FileSystem; wallet: Wallet; }; export declare abstract class Migration { id: number; name: string; abstract database: Database; abstract path: string; init(files: FileSystem): Migration; abstract prepare(context: MigrationContext): Promise | IDatabase; abstract forward(context: MigrationContext, db: IDatabase, tx: IDatabaseTransaction | undefined, logger: Logger, dryRun: boolean, walletPassphrase: string | undefined): Promise; abstract backward(context: MigrationContext, db: IDatabase, tx: IDatabaseTransaction | undefined, logger: Logger, dryRun: boolean, walletPassphrase: string | undefined): Promise; } //# sourceMappingURL=migration.d.ts.map