/**
 * Copyright 2013-2025 the original author or authors from the JHipster project.
 *
 * This file is part of the JHipster project, see https://www.jhipster.tech/
 * for more information.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { Storage } from 'yeoman-generator';
import BaseApplicationGenerator from '../base-application/index.js';
import type { Entity } from '../../lib/types/application/entity.js';
export default class EntityGenerator extends BaseApplicationGenerator {
    [BaseApplicationGenerator.INITIALIZING]: any;
    [BaseApplicationGenerator.PROMPTING]: any;
    [BaseApplicationGenerator.LOADING]: any;
    [BaseApplicationGenerator.POST_PREPARING]: any;
    [BaseApplicationGenerator.END]: any;
    name: string;
    application: any;
    entityStorage: Storage;
    entityConfig: Entity;
    entityData: {
        name: string;
        filename: string;
        configExisted: any;
        entityExisted: boolean;
        configurationFileExists: boolean;
    };
    constructor(args: any, options: any, features: any);
    beforeQueue(): Promise<void>;
    get initializing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "parseOptions" | "loadOptions">;
    get prompting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "askForMicroserviceJson">;
    get loading(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").TaskParamWithApplicationDefaults<Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<Entity<import("../base-application/index.js").Field, never>>>, "isBuiltInEntity" | "setupMicroServiceEntity" | "loadEntitySpecificOptions" | "validateEntityName" | "bootstrapConfig">;
    get postPreparing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl & {
        source: import("../../lib/types/application/application.js").BaseApplicationSource;
    } & {
        application: import("../../lib/types/application/application.js").ApplicationType<Entity<import("../base-application/index.js").Field, never>>;
    }, "askForUpdate" | "askForFields" | "askForFieldsToRemove" | "askForRelationships" | "askForRelationsToRemove" | "askForService" | "askForDTO" | "askForFiltering" | "askForReadOnly" | "askForPagination" | "composeEntities">;
    get end(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").TaskParamWithApplication<Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<Entity<import("../base-application/index.js").Field, never>>>, "end">;
    /**
     * @private
     * Setup Entity instance level options from context.
     * all variables should be set to dest,
     * all variables should be referred from context,
     * all methods should be called on generator,
     * @param {any} generator - generator instance
     * @param {any} context - context to use default is generator instance
     * @param {any} dest - destination context to use default is context
     */
    _setupEntityOptions(generator: any, context?: any, dest?: any): void;
    /**
     * @private
     * Validate the entityName
     * @return {true|string} true for a valid value or error message.
     */
    _validateEntityName(entityName: any): true | "The entity name must be alphanumeric only" | "The entity name cannot start with a number" | "The entity name cannot be empty" | "The entity name cannot end with 'Detail'" | "The entity name cannot contain a Java or JHipster reserved keyword";
    /**
     * @private
     * Verify if the entity is a built-in User.
     * @param {String} entityName - Entity name to verify.
     * @return {boolean} true if the entity is User and is built-in.
     */
    isBuiltInUser(entityName: any): any;
    /**
     * @private
     * Verify if the entity is a User entity.
     * @param {String} entityName - Entity name to verify.
     * @return {boolean} true if the entity is User.
     */
    isUserEntity(entityName: any): boolean;
    /**
     * @private
     * Verify if the entity is a Authority entity.
     * @param {String} entityName - Entity name to verify.
     * @return {boolean} true if the entity is Authority.
     */
    isAuthorityEntity(entityName: any): boolean;
    /**
     * @private
     * Verify if the entity is a built-in Authority.
     * @param {String} entityName - Entity name to verify.
     * @return {boolean} true if the entity is Authority and is built-in.
     */
    isBuiltInAuthority(entityName: any): any;
}
