/**
 * @athenna/database
 *
 * (c) João Lenon <lenon@athenna.io>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
import type { BaseMigration } from '#src/database/migrations/BaseMigration';
type Source = {
    name: string;
    Migration: new (...args: any[]) => BaseMigration;
};
export declare class MigrationSource {
    connection: any;
    constructor(connection: string);
    /**
     * Verify if migration is able to run by connection.
     */
    private isAbleToRun;
    /**
     * Get all the migrations from migrations path and import
     * as modules. This method will be used by "getMigration"
     * method later to get the migrations "up"/"down" methods.
     */
    getMigrations(): Promise<Source[]>;
    /**
     * Get the migration name that will be used to set in
     * migrations table.
     */
    getMigrationName(source: Source): string;
    /**
     * Creates a new migration instance and return the up/down
     * methods in object.
     */
    getMigration(source: Source): Promise<{
        up: (knex: any) => any;
        down: (knex: any) => any;
    }>;
}
export {};
