import type { PrismaClient, MigrationFile } from "../types";
export declare class Migrations {
    private prisma;
    private migrationsDir;
    private lock;
    private disableLocking;
    private skipChecksumValidation;
    private lockTimeout;
    constructor(prisma: PrismaClient, options?: {
        migrationsDir?: string;
        disableLocking?: boolean;
        skipChecksumValidation?: boolean;
        lockTimeout?: number;
    });
    private validateMigrationFile;
    private validateAppliedMigrationChecksums;
    dryRun(steps?: number): Promise<MigrationFile[]>;
    private getMigrationsDir;
    up(steps?: number): Promise<number>;
    private runUpMigrations;
    private runMigrationInTransaction;
    down(steps?: number): Promise<number>;
    private runDownMigrations;
    status(): Promise<void>;
    pending(): Promise<MigrationFile[]>;
    applied(): Promise<MigrationFile[]>;
    latest(): Promise<MigrationFile | null>;
    reset(): Promise<number>;
    private runResetMigrations;
    fresh(): Promise<number>;
    refresh(): Promise<{
        down: number;
        up: number;
    }>;
    upTo(migrationId: string): Promise<number>;
    private runUpToMigration;
    downTo(migrationId: string): Promise<number>;
    private runDownToMigration;
    upIfNotLocked(steps?: number): Promise<{
        ran: boolean;
        count: number;
        reason?: string;
    }>;
    checkLockStatus(): Promise<boolean>;
    releaseLock(): Promise<void>;
    private getApplied;
    private detectMigrationFile;
    private isValidMigrationDir;
    private parseMigrationName;
    private filterValidDirectories;
    private mapToMigrationFiles;
    private getAllMigrations;
    private findMigration;
}
//# sourceMappingURL=index.d.ts.map