import type { Application } from './types.ts';
export type JavaSimpleApplicationLoadingAddedApplicationProperties = {
    javaCompatibleVersions: string[];
    entityPackages: string[];
    /** Java dependency versions */
    javaDependencies: Record<string, string>;
    /** Known properties that can be used */
    javaProperties: Record<string, string | null>;
    /** Known managed properties that can be used */
    javaManagedProperties: Record<string, string | null>;
    /** Pre-defined package JavaDocs */
    packageInfoJavadocs: {
        packageName: string;
        documentation: string;
    }[];
    domains: string[];
    javaIntegrationTestExclude: string[];
};
export type JavaSimpleApplicationPreparingAddedApplicationProperties = {
    javaVersion: string;
    mainClass: string;
    packageFolder: string;
    srcMainJava: string;
    srcMainResources: string;
    srcMainWebapp: string;
    srcTestJava: string;
    srcTestResources: string;
    srcTestJavascript: string;
    javaPackageSrcDir: string;
    javaPackageTestDir: string;
    temporaryDir?: string;
    reactive: boolean;
    buildToolUnknown?: boolean;
    buildToolExecutable?: string;
    addOpenapiGeneratorPlugin: boolean;
    graalvmReachabilityMetadata: string;
    emptyOrReactive: string;
    imperativeOrReactive: string;
    optionalOrMono: string;
    optionalOrMonoOfNullable: string;
    listOrFlux: string;
    optionalOrMonoClassPath: string;
    wrapMono: (className: string) => string;
    listOrFluxClassPath: string;
    reactorBlock: string;
    reactorBlockOptional: string;
    jhipsterDependenciesVersion?: string;
};
export type JavaSimpleApplicationAddedApplicationProperties = JavaSimpleApplicationLoadingAddedApplicationProperties & JavaSimpleApplicationPreparingAddedApplicationProperties;
export declare const mutateApplicationLoading: {
    readonly __override__: false;
    readonly javaCompatibleVersions: () => string[];
    readonly entityPackages: () => never[];
    readonly javaDependencies: () => {};
    readonly javaProperties: () => {};
    readonly javaManagedProperties: () => {};
    readonly packageInfoJavadocs: () => never[];
    readonly javaIntegrationTestExclude: () => never[];
    readonly domains: () => never[];
};
export declare const mutateApplicationPreparing: {
    readonly __override__: false;
    readonly javaVersion: "21";
    readonly mainClass: ({ baseName }: Application) => Capitalize<string> | "Application";
    readonly packageName: "com.mycompany.myapp";
    readonly packageFolder: ({ packageName }: Application) => string;
    readonly srcMainJava: "src/main/java/";
    readonly srcMainResources: "src/main/resources/";
    readonly srcMainWebapp: "src/main/webapp/";
    readonly srcTestJava: "src/test/java/";
    readonly srcTestResources: "src/test/resources/";
    readonly srcTestJavascript: "src/test/javascript/";
    readonly javaPackageSrcDir: ({ srcMainJava, packageFolder }: Application) => string;
    readonly javaPackageTestDir: ({ srcTestJava, packageFolder }: Application) => string;
    readonly packageInfoJavadocs: ({ packageInfoJavadocs, packageName }: Application) => {
        packageName: string;
        documentation: string;
    }[];
    readonly reactive: false;
    readonly addOpenapiGeneratorPlugin: true;
    readonly emptyOrReactive: ({ reactive }: Application) => "" | "Reactive";
    readonly imperativeOrReactive: ({ reactive }: Application) => "reactive" | "imperative";
    readonly optionalOrMono: ({ reactive }: Application) => "Mono" | "Optional";
    readonly optionalOrMonoOfNullable: ({ reactive }: Application) => "Mono.justOrEmpty" | "Optional.ofNullable";
    readonly optionalOrMonoClassPath: ({ reactive }: Application) => "reactor.core.publisher.Mono" | "java.util.Optional";
    readonly wrapMono: (ctx: Application) => (className: string) => string;
    readonly listOrFlux: ({ reactive }: Application) => "Flux" | "List";
    readonly listOrFluxClassPath: ({ reactive }: Application) => "reactor.core.publisher.Flux" | "java.util.List";
    readonly reactorBlock: ({ reactive }: Application) => "" | ".block()";
    readonly reactorBlockOptional: ({ reactive }: Application) => "" | ".blockOptional()";
    readonly jhipsterDependenciesVersion: "9.0.0";
    readonly withGeneratedFlag: false;
    readonly graalvmReachabilityMetadata: "0.3.35";
};
