/**
 * Copyright 2013-2024 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 BaseWorkspacesGenerator from '../base-workspaces/index.js';
import { checkImages, configureImageNames, generateJwtSecret, loadFromYoRc } from '../base-workspaces/internal/docker-base.js';
import { loadConfig, setupHelmConstants, setupKubernetesConstants } from '../kubernetes/kubernetes-base.js';
import { loadDockerDependenciesTask } from '../base-workspaces/internal/index.js';
/**
 * @class
 * @extends {BaseWorkspacesGenerator}
 */
export default class KubernetesHelmGenerator extends BaseWorkspacesGenerator {
    [x: string]: {
        writeAppChart(): void;
        writeCommonServiceChart(): void;
        writeReadme(): void;
        writeConfigRunFile(): void;
    } | {
        sayHello(): void;
        existingDeployment(): void;
        loadDockerDependenciesTask: typeof loadDockerDependenciesTask;
        checkDocker: (this: import("../index.js").GeneratorBaseCore) => Promise<void>;
        checkKubernetes: () => Promise<void>;
        checkHelm: () => Promise<void>;
        loadConfig: typeof loadConfig;
        setupKubernetesConstants: typeof setupKubernetesConstants;
        setupHelmConstants: typeof setupHelmConstants;
    } | {
        askForApplicationType: () => Promise<void>;
        askForPath: () => Promise<void>;
        askForApps: () => Promise<void>;
        askForMonitoring: () => Promise<void>;
        askForClustersMode: () => Promise<void>;
        askForServiceDiscovery: () => Promise<void>;
        askForAdminPassword: () => Promise<void>;
        askForKubernetesNamespace: typeof import("../kubernetes/prompts.js").askForKubernetesNamespace;
        askForDockerRepositoryName: () => Promise<void>;
        askForDockerPushCommand: () => Promise<void>;
        askForIstioSupport: typeof import("../kubernetes/prompts.js").askForIstioSupport;
        askForKubernetesServiceType: typeof import("../kubernetes/prompts.js").askForKubernetesServiceType;
        askForIngressType: typeof import("../kubernetes/prompts.js").askForIngressType;
        askForIngressDomain: typeof import("../kubernetes/prompts.js").askForIngressDomain;
    } | {
        generateJwtSecret: typeof generateJwtSecret;
    } | {
        loadFromYoRc: typeof loadFromYoRc;
        loadSharedConfig(): void;
    } | {
        configureImageNames: typeof configureImageNames;
        setPostPromptProp(): void;
    } | {
        checkImages: typeof checkImages;
        deploy(): void;
    } | (() => Promise<void>) | ((databaseType: any, options?: {}) => string);
    beforeQueue(): Promise<void>;
    get initializing(): {
        sayHello(): void;
        existingDeployment(): void;
        loadDockerDependenciesTask: typeof loadDockerDependenciesTask;
        checkDocker: (this: import("../index.js").GeneratorBaseCore) => Promise<void>;
        checkKubernetes: () => Promise<void>;
        checkHelm: () => Promise<void>;
        loadConfig: typeof loadConfig;
        setupKubernetesConstants: typeof setupKubernetesConstants;
        setupHelmConstants: typeof setupHelmConstants;
    };
    get prompting(): {
        askForApplicationType: () => Promise<void>;
        askForPath: () => Promise<void>;
        askForApps: () => Promise<void>;
        askForMonitoring: () => Promise<void>;
        askForClustersMode: () => Promise<void>;
        askForServiceDiscovery: () => Promise<void>;
        askForAdminPassword: () => Promise<void>;
        askForKubernetesNamespace: typeof import("../kubernetes/prompts.js").askForKubernetesNamespace;
        askForDockerRepositoryName: () => Promise<void>;
        askForDockerPushCommand: () => Promise<void>;
        askForIstioSupport: typeof import("../kubernetes/prompts.js").askForIstioSupport;
        askForKubernetesServiceType: typeof import("../kubernetes/prompts.js").askForKubernetesServiceType;
        askForIngressType: typeof import("../kubernetes/prompts.js").askForIngressType;
        askForIngressDomain: typeof import("../kubernetes/prompts.js").askForIngressDomain;
    };
    get configuring(): {
        generateJwtSecret: typeof generateJwtSecret;
    };
    get loading(): {
        loadFromYoRc: typeof loadFromYoRc;
        loadSharedConfig(): void;
    };
    get preparing(): {
        configureImageNames: typeof configureImageNames;
        setPostPromptProp(): void;
    };
    get writing(): {
        writeAppChart(): void;
        writeCommonServiceChart(): void;
        writeReadme(): void;
        writeConfigRunFile(): void;
    };
    get end(): {
        checkImages: typeof checkImages;
        deploy(): void;
    };
    /**
     * @private
     * Returns the JDBC URL for a databaseType
     *
     * @param {string} databaseType
     * @param {*} options: databaseName, and required infos that depends of databaseType (hostname, localDirectory, ...)
     */
    getJDBCUrl(databaseType: any, options?: {}): string;
    /**
     * @private
     * Returns the R2DBC URL for a databaseType
     *
     * @param {string} databaseType
     * @param {*} options: databaseName, and required infos that depends of databaseType (hostname, localDirectory, ...)
     */
    getR2DBCUrl(databaseType: any, options?: {}): string;
}
