import { DdlCompiled } from "./../core/ddl-compided";
import { ExecutableBuilder } from "../core/executable-builder";
import { DatabaseBase, DatabaseResult } from "../definitions/database-definition";
import { DdlBaseBuilder } from "./ddl-base-builder";
import { QueryCompiled } from "../core/query-compiled";
import { Observable } from "rxjs";
import { SqlCompilable } from "../crud/sql-compilable";
export declare class DdlBase<T, TBuilder extends DdlBaseBuilder<T>> implements SqlCompilable {
    protected readonly _builder: TBuilder;
    private readonly _database;
    protected readonly _executableBuilder: ExecutableBuilder;
    readonly __allowInTransaction: boolean;
    constructor(_builder: TBuilder, _database?: DatabaseBase, enableLog?: boolean);
    execute({ cascade, database }?: {
        cascade?: boolean;
        database?: DatabaseBase;
    }): Observable<DatabaseResult[]>;
    compile(cascade?: boolean): QueryCompiled[];
    build(cascade?: boolean): DdlCompiled;
    private getDatabase;
}
