import { type ListrTask } from 'listr2';
import { BaseCommand } from './base.js';
import * as constants from '../core/constants.js';
import { type CommandBuilder, type IP, type NodeAlias, type NodeAliases } from '../types/aliases.js';
import { type Opts } from '../types/command_types.js';
export interface NetworkDeployConfigClass {
    applicationEnv: string;
    cacheDir: string;
    chartDirectory: string;
    enablePrometheusSvcMonitor: boolean;
    loadBalancerEnabled: boolean;
    soloChartVersion: string;
    namespace: string;
    nodeAliasesUnparsed: string;
    persistentVolumeClaims: string;
    profileFile: string;
    profileName: string;
    releaseTag: string;
    chartPath: string;
    keysDir: string;
    nodeAliases: NodeAliases;
    stagingDir: string;
    stagingKeysDir: string;
    valuesArg: string;
    grpcTlsCertificatePath: string;
    grpcWebTlsCertificatePath: string;
    grpcTlsKeyPath: string;
    grpcWebTlsKeyPath: string;
    genesisThrottlesFile: string;
    resolvedThrottlesFile: string;
    getUnusedConfigs: () => string[];
    haproxyIps: string;
    envoyIps: string;
    haproxyIpsParsed?: Record<NodeAlias, IP>;
    envoyIpsParsed?: Record<NodeAlias, IP>;
    storageType: constants.StorageType;
    storageAccessKey: string;
    storageSecrets: string;
    storageEndpoint: string;
    storageBucket: string;
    backupBucket: string;
    googleCredential: string;
}
export declare class NetworkCommand extends BaseCommand {
    private readonly keyManager;
    private readonly platformInstaller;
    private readonly profileManager;
    private readonly certificateManager;
    private profileValuesFile?;
    constructor(opts: Opts);
    static get DEPLOY_CONFIGS_NAME(): string;
    static get DEPLOY_FLAGS_LIST(): import("../types/flag_types.js").CommandFlag[];
    prepareStorageSecrets(config: NetworkDeployConfigClass): Promise<void>;
    prepareValuesArg(config: {
        chartDirectory?: string;
        app?: string;
        nodeAliases: string[];
        debugNodeAlias?: NodeAlias;
        enablePrometheusSvcMonitor?: boolean;
        releaseTag?: string;
        persistentVolumeClaims?: string;
        valuesFile?: string;
        haproxyIpsParsed?: Record<NodeAlias, IP>;
        envoyIpsParsed?: Record<NodeAlias, IP>;
        storageType: constants.StorageType;
        resolvedThrottlesFile: string;
        storageAccessKey: string;
        storageSecrets: string;
        storageEndpoint: string;
        storageBucket: string;
        backupBucket: string;
        googleCredential: string;
        loadBalancerEnabled: boolean;
    }): Promise<string>;
    prepareConfig(task: any, argv: any): Promise<NetworkDeployConfigClass>;
    destroyTask(ctx: any, task: any): Promise<void>;
    /** Run helm install and deploy network components */
    deploy(argv: any): Promise<boolean>;
    destroy(argv: any): Promise<boolean>;
    /** Run helm upgrade to refresh network components with new settings */
    refresh(argv: any): Promise<boolean>;
    getCommandDefinition(): {
        command: string;
        desc: string;
        builder: CommandBuilder;
    };
    /** Adds the consensus node, envoy and haproxy components to remote config.  */
    addNodesAndProxies(): ListrTask<any, any, any>;
    close(): Promise<void>;
}
