import { type MigrationsOptions, type Transaction, type EntitySchema } from '@mikro-orm/core';
import { type AbstractSqlDriver } from '@mikro-orm/sql';
import type { MigrationRow } from './typings.js';
/** Tracks executed migrations in a database table. */
export declare class MigrationStorage {
    #private;
    protected readonly driver: AbstractSqlDriver;
    protected readonly options: MigrationsOptions;
    constructor(driver: AbstractSqlDriver, options: MigrationsOptions);
    executed(): Promise<string[]>;
    logMigration(params: {
        name: string;
    }, tx?: Transaction): Promise<void>;
    unlogMigration(params: {
        name: string;
    }, tx?: Transaction): Promise<void>;
    getExecutedMigrations(): Promise<MigrationRow[]>;
    ensureTable(): Promise<void>;
    setMasterMigration(trx: Transaction): void;
    unsetMasterMigration(): void;
    setRunSchema(schema?: string): void;
    unsetRunSchema(): void;
    /**
     * @internal
     */
    getMigrationName(name: string): string;
    /**
     * @internal
     */
    getTableName(): {
        tableName: string;
        schemaName: string;
        entity: EntitySchema;
    };
    private resolveTableName;
}
