import type { Configuration, Transaction } from '@mikro-orm/core'; import type { AbstractSqlDriver, Knex } from '@mikro-orm/knex'; export declare type Query = string | Knex.QueryBuilder | Knex.Raw; export declare abstract class Migration { protected readonly driver: AbstractSqlDriver; protected readonly config: Configuration; private readonly queries; protected ctx?: Transaction; constructor(driver: AbstractSqlDriver, config: Configuration); abstract up(): Promise; down(): Promise; isTransactional(): boolean; addSql(sql: Query): void; reset(): void; setTransactionContext(ctx: Transaction): void; execute(sql: Query): Promise>[]>; getKnex(): Knex; getQueries(): Query[]; }