import { AbstractModel } from "../model/AbstractModel";
import { IQuery } from "../model/IQuery";
import { ITransaction } from "../model/ITransaction";
import { AbstractDatabaseAdapter, SqlProvider } from "..";
export declare class DefaultSqlAdapter extends AbstractDatabaseAdapter {
    private static readonly SERIAL_PROMISE;
    private static readonly COMMENT_BLOCK_REGEX_PATTERN;
    private static readonly SEQUELIZE_CLI_PATH;
    private readonly connectionString;
    private readonly migrationDirectory?;
    private readonly provider;
    private readonly databaseURL;
    private readonly connection;
    private readonly modelAdapters;
    private logger;
    constructor(sqlProvider: SqlProvider, connectionString: string, migrationDirectory: string | undefined);
    use<T extends AbstractModel>(model: {
        new (...args: any[]): T;
    }): IQuery<T>;
    init(): Promise<void>;
    stop(): Promise<void>;
    private runMigration;
    private generatePropertiesQuery;
    private static getDifferences;
    private static generateSchemaObject;
    createTransaction(): Promise<ITransaction>;
}
//# sourceMappingURL=DefaultSqlAdapter.d.ts.map