import { SchemaEngineConfigInternal } from '@prisma/config';
import { MigrateTypes, SchemaContext } from '@prisma/internals';
import { Extension } from './extensions';
import type { SchemaEngine } from './SchemaEngine';
import type { EngineArgs, EngineResults } from './types';
type MigrateSetupInput = {
    schemaEngineConfig: SchemaEngineConfigInternal;
    migrationsDirPath?: string;
    enabledPreviewFeatures?: string[];
    schemaContext?: SchemaContext;
    schemaFilter?: MigrateTypes.SchemaFilter;
    shadowDbInitScript?: string;
    extensions?: Extension[];
    baseDir: string;
};
export declare class Migrate {
    readonly engine: SchemaEngine;
    private schemaContext?;
    private schemaFilter;
    private shadowDbInitScript;
    migrationsDirectoryPath?: string;
    private constructor();
    static setup({ schemaContext, schemaEngineConfig, ...rest }: MigrateSetupInput): Promise<Migrate>;
    stop(): Promise<void>;
    getPrismaSchema(): MigrateTypes.SchemasContainer;
    reset(): Promise<void>;
    createMigration(params: Omit<EngineArgs.CreateMigrationInput, 'migrationsList' | 'filters'>): Promise<{
        generatedMigrationName: string | undefined;
    }>;
    diagnoseMigrationHistory({ optInToShadowDatabase, }: {
        optInToShadowDatabase: boolean;
    }): Promise<EngineResults.DiagnoseMigrationHistoryOutput>;
    listMigrationDirectories(): Promise<EngineResults.ListMigrationDirectoriesOutput>;
    devDiagnostic(): Promise<EngineResults.DevDiagnosticOutput>;
    markMigrationApplied({ migrationId }: {
        migrationId: string;
    }): Promise<void>;
    markMigrationRolledBack({ migrationId }: {
        migrationId: string;
    }): Promise<void>;
    applyMigrations(): Promise<EngineResults.ApplyMigrationsOutput>;
    evaluateDataLoss(): Promise<EngineResults.EvaluateDataLossOutput>;
    push({ force }: {
        force?: boolean;
    }): Promise<EngineResults.SchemaPush>;
}
export {};
