import { DdlColumnsBuilder } from "./ddl-columns-builder";
import { ColumnsBaseCompiled } from "../core/columns-base-compiled";
import { DdlCompiled } from "../core/ddl-compided";
import { MapperTable } from "../mapper-table";
export declare abstract class DdlBaseBuilder<T> {
    protected readonly _tablename: string;
    private _columnsCompiled;
    constructor(_tablename: string);
    build(cascade?: boolean): DdlCompiled;
    protected removeMultiSpacesAndBreakLines(str: string): string;
    protected getColumnsCompiled(): ColumnsBaseCompiled;
    protected columnsBase<TBuilder extends DdlBaseBuilder<T>>(columnsCallback: (columns: DdlColumnsBuilder<T>) => void, instanceSetColumnsBuilder: DdlColumnsBuilder<T>, instanceReturn: TBuilder): TBuilder;
    protected abstract resolveDependency(dependency: MapperTable): DdlCompiled;
    protected abstract dependencies(): MapperTable[];
    protected abstract buildBase(): string;
    protected abstract setDefaultColumns(): void;
    private compileColumns;
}
