import BaseEntityChangesGenerator from '../base-entity-changes/index.js';
import type { Field } from '../../lib/types/application/index.js';
export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
    [x: string]: any;
    recreateInitialChangelog: boolean;
    numberOfRows: number;
    databaseChangelogs: any[];
    injectBuildTool: boolean;
    injectLogs: boolean;
    constructor(args: any, options: any, features: any);
    beforeQueue(): Promise<void>;
    get preparing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PreparingTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "preparing" | "addNeedles" | "checkDatabaseCompatibility">;
    get preparingEachEntityField(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PreparingEachEntityFieldTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "prepareEntityField" | "validateConsistencyOfField">;
    get preparingEachEntityRelationship(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PreparingEachEntityRelationshipTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "prepareEntityRelationship">;
    get postPreparingEachEntity(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PreparingEachEntityTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "postPrepareEntity">;
    get default(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl & {
        application: import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>;
    } & {
        entities: import("../../lib/types/application/entity.js").Entity<Field, never>[];
    } & {
        entityChanges?: import("../base-entity-changes/types.js").BaseChangelog[];
    }, "calculateChangelogs">;
    get writing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").WritingTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "writing">;
    get writingEntities(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl & {
        application: import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>;
    } & {
        entities: import("../../lib/types/application/entity.js").Entity<Field, never>[];
    } & {
        entityChanges?: import("../base-entity-changes/types.js").BaseChangelog[];
    }, "writeChangelogs">;
    get postWriting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingTaskParam<import("../../lib/types/application/entity.js").Entity<Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>>, "customizeMaven" | "nativeHints" | "customizeSpringLogs" | "customizeApplicationProperties" | "injectGradle">;
    get postWritingEntities(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl & {
        application: import("../../lib/types/application/application.js").ApplicationType<import("../../lib/types/application/entity.js").Entity<Field, never>>;
    } & {
        entities: import("../../lib/types/application/entity.js").Entity<Field, never>[];
    } & {
        source: import("../../lib/types/application/application.js").BaseApplicationSource;
    } & {
        entityChanges?: import("../base-entity-changes/types.js").BaseChangelog[];
    }, "postWriteChangelogs">;
    isChangelogNew({ entityName, changelogDate }: {
        entityName: any;
        changelogDate: any;
    }): boolean;
    _writeLiquibaseFiles({ context: writeContext, changelogData }: {
        context: any;
        changelogData: any;
    }): Promise<any[]>;
    _addLiquibaseFilesReferences({ entity, databaseChangelog, source }: {
        entity: any;
        databaseChangelog: any;
        source: any;
    }): void;
    _writeUpdateFiles({ context: writeContext, changelogData }: {
        context: any;
        changelogData: any;
    }): Promise<any[]>;
    private _requiresConstraintUpdates;
    private _isBasicEntityUpdate;
    private _requiresWritingFakeData;
    _addUpdateFilesReferences({ entity, databaseChangelog, changelogData, source }: {
        entity: any;
        databaseChangelog: any;
        changelogData: any;
        source: any;
    }): void;
    formatAsLiquibaseRemarks(text: any, addRemarksTag?: boolean): any;
    createDefaultValueLiquibaseAttribute(field: Field, leadingWhitespace?: boolean): string;
    prepareChangelog({ databaseChangelog, application }: {
        databaseChangelog: any;
        application: any;
    }): any;
    writeChangelog({ databaseChangelog }: {
        databaseChangelog: any;
    }): Promise<any[]> | undefined;
    postWriteChangelog({ databaseChangelog, source }: {
        databaseChangelog: any;
        source: any;
    }): void;
    getFKConstraintName(entityName: string, relationshipName: string, prodDatabaseType: string, noSnakeCase: boolean): string;
    getUXConstraintName(entityName: string, columnName: string, prodDatabaseType: string, noSnakeCase: boolean): string;
    _getIconName(iconName: string, clientFramework?: string, clientTheme?: string): any;
}
