import * as constants from '../core/constants.js';
import { BaseCommand } from './base.js';
import { type CommandBuilder } from '../types/aliases.js';
import { type Opts } from '../types/command_types.js';
import type { Optional, SoloListrTask } from '../types/index.js';
import type { Namespace } from '../core/config/remote/types.js';
interface MirrorNodeDeployConfigClass {
    chartDirectory: string;
    deployHederaExplorer: boolean;
    enableHederaExplorerTls: boolean;
    hederaExplorerTlsHostName: string;
    hederaExplorerTlsLoadBalancerIp: string | '';
    hederaExplorerVersion: string;
    namespace: string;
    profileFile: string;
    profileName: string;
    tlsClusterIssuerType: string;
    valuesFile: string;
    chartPath: string;
    valuesArg: string;
    mirrorNodeVersion: string;
    getUnusedConfigs: () => string[];
    clusterSetupNamespace: string;
    soloChartVersion: string;
    pinger: boolean;
    customMirrorNodeDatabaseValuePath: Optional<string>;
    storageType: constants.StorageType;
    storageAccessKey: string;
    storageSecrets: string;
    storageEndpoint: string;
    storageBucket: string;
}
export declare class MirrorNodeCommand extends BaseCommand {
    private readonly accountManager;
    private readonly profileManager;
    constructor(opts: Opts);
    static get DEPLOY_CONFIGS_NAME(): string;
    static get DEPLOY_FLAGS_LIST(): import("../types/flag_types.js").CommandFlag[];
    prepareHederaExplorerValuesArg(config: {
        valuesFile: string;
    }): Promise<string>;
    /**
     * @param config
     * @param config.tlsClusterIssuerType - must be one of - acme-staging, acme-prod, or self-signed
     * @param config.namespace - used for classname ingress class name prefix
     * @param config.hederaExplorerTlsLoadBalancerIp - can be an empty string
     * @param config.hederaExplorerTlsHostName
     */
    private prepareSoloChartSetupValuesArg;
    prepareValuesArg(config: MirrorNodeDeployConfigClass): Promise<string>;
    deploy(argv: any): Promise<boolean>;
    destroy(argv: any): Promise<boolean>;
    /** Return Yargs command definition for 'mirror-mirror-node' command */
    getCommandDefinition(): {
        command: string;
        desc: string;
        builder: CommandBuilder;
    };
    /** Removes the mirror node and mirror node explorer components from remote config. */
    removeMirrorNodeComponents(): SoloListrTask<object>;
    /** Adds the mirror node and mirror node explorer components to remote config. */
    addMirrorNodeComponents(): SoloListrTask<{
        config: {
            namespace: Namespace;
        };
    }>;
    close(): Promise<void>;
}
export {};
