import { type Store as MemFs } from 'mem-fs';
import { type MemFsEditorFile } from 'mem-fs-editor';
import EnvironmentBuilder from '../../cli/environment-builder.ts';
import { type ApplicationWithEntities } from '../../lib/jdl/jdl-importer.ts';
import BaseGenerator from '../base/index.ts';
import type { Config as JdlConfig, Options as JdlOptions } from './types.ts';
type ApplicationWithEntitiesAndPath = ApplicationWithEntities & {
    folder?: string;
    sharedFs?: MemFs<MemFsEditorFile>;
};
export default class JdlGenerator extends BaseGenerator<JdlConfig, JdlOptions> {
    [BaseGenerator.INITIALIZING]: Record<"loadArguments" | "existingProject" | "checkOptions", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    [BaseGenerator.CONFIGURING]: Record<"configure" | "downloadJdlFiles" | "readJdlFiles" | "parseJDL" | "customizeApplication" | "generateJson" | "generate", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    [BaseGenerator.END]: Record<"generateDeployments", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    jdlFiles?: string[];
    inline?: string;
    jdlContents: string[];
    entrypointGenerator: string;
    entitiesGenerator: string;
    workspacesGenerator: string;
    interactive?: boolean;
    jsonOnly?: boolean;
    ignoreApplication?: boolean;
    ignoreDeployments?: boolean;
    skipSampleRepository?: boolean;
    force?: boolean;
    reproducible?: boolean;
    createEnvBuilder: typeof EnvironmentBuilder.createDefaultBuilder;
    existingProject?: boolean;
    applications: ApplicationWithEntitiesAndPath[];
    exportedApplicationsWithEntities: Record<string, ApplicationWithEntities>;
    exportedEntities: any[];
    exportedDeployments: any[];
    beforeQueue(): Promise<void>;
    get initializing(): Record<"loadArguments" | "existingProject" | "checkOptions", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    get configuring(): Record<"configure" | "downloadJdlFiles" | "readJdlFiles" | "parseJDL" | "customizeApplication" | "generateJson" | "generate", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    get end(): Record<"generateDeployments", import("../base-core/types.js").GenericTask<any, import("../base/tasks.js").TaskParamWithControl>>;
    runNonInteractive(applications: ApplicationWithEntitiesAndPath[], options: any): Promise<void>;
    writeConfig(...applications: Partial<ApplicationWithEntitiesAndPath>[]): void;
}
export {};
