import type { BaseDatabase } from '../database'; import { type LoggerInterface } from '../../services/logger'; export * from './create'; export * from './maintenance'; export type MigrationFunction = (db: T) => Promise | void; export interface Migration { name: string; up: MigrationFunction; } export interface MigrationExecution { name: string; executedAt: Date; durationMs: number; } export interface MigrationRunOptions { beforeRun?: MigrationFunction; } export declare function createMigration(fn: MigrationFunction): MigrationFunction; export declare function defineMigration(name: string, up: MigrationFunction): Migration; export declare class MigrationRunner { readonly db: T; readonly tableName: string; private readonly logger; constructor(db: T, tableName?: string, logger?: LoggerInterface); run(migrations: readonly Migration[], options?: MigrationRunOptions): Promise; getExecutedMigrationNames(): Promise; createMigrationsTableIfNotExists(): Promise; private recordMigration; } export declare function runMigrations(db: T, migrations: readonly Migration[], options?: MigrationRunOptions): Promise; export declare function loadMigrationsFromDirectory(directory: string): Promise[]>; export declare function runMigrationsFromDirectory(db: T, directory: string): Promise; //# sourceMappingURL=index.d.ts.map