import GeneratorBaseApplication from '../base-application/index.js';
import type { TaskTypes as ApplicationTaskTypes, TaskParamWithApplication } from '../../lib/types/application/tasks.js';
import type { BaseChangelog } from './types.js';
import type { TaskParamWithChangelogsAndApplication } from './tasks.js';
type TaskTypes = ApplicationTaskTypes & {
    DefaultTaskParam: {
        entityChanges?: BaseChangelog[];
    };
    WritingEntitiesTaskParam: {
        entityChanges?: BaseChangelog[];
    };
    PostWritingEntitiesTaskParam: {
        entityChanges?: BaseChangelog[];
    };
};
/**
 * This is the base class for a generator for every generator.
 */
export default abstract class GeneratorBaseEntityChanges extends GeneratorBaseApplication<TaskTypes> {
    recreateInitialChangelog: boolean;
    private entityChanges;
    abstract isChangelogNew({ entityName, changelogDate }: {
        entityName: any;
        changelogDate: any;
    }): boolean;
    protected getTaskFirstArgForPriority(priorityName: string): TaskParamWithChangelogsAndApplication | TaskParamWithApplication;
    /**
     * Generate changelog from differences between the liquibase entity and current entity.
     */
    protected generateIncrementalChanges(): BaseChangelog[];
    private hasAnyDefaultValue;
    private doDefaultValuesDiffer;
}
export {};
