import { type ProfileManager } from '../core/profile-manager.js';
import { type AccountManager } from '../core/account-manager.js';
import { BaseCommand } from './base.js';
import { type NodeAliases } from '../types/aliases.js';
import { type ClusterReferenceName, type CommandDefinition, type Optional, type SoloListrTask } from '../types/index.js';
import { NamespaceName } from '../types/namespace/namespace-name.js';
import { type ComponentFactoryApi } from '../core/config/remote/api/component-factory-api.js';
interface RelayDestroyConfigClass {
    chartDirectory: string;
    namespace: NamespaceName;
    deployment: string;
    nodeAliases: NodeAliases;
    releaseName: string;
    isChartInstalled: boolean;
    clusterRef: Optional<ClusterReferenceName>;
    context: Optional<string>;
}
interface RelayDestroyContext {
    config: RelayDestroyConfigClass;
}
interface RelayDeployConfigClass {
    chainId: string;
    chartDirectory: string;
    namespace: NamespaceName;
    deployment: string;
    nodeAliasesUnparsed: string;
    operatorId: string;
    operatorKey: string;
    profileFile: string;
    profileName: string;
    relayReleaseTag: string;
    replicaCount: number;
    valuesFile: string;
    isChartInstalled: boolean;
    nodeAliases: NodeAliases;
    releaseName: string;
    valuesArg: string;
    clusterRef: Optional<ClusterReferenceName>;
    domainName: Optional<string>;
    context: Optional<string>;
    forcePortForward: Optional<boolean>;
    cacheDir: Optional<string>;
}
interface RelayDeployContext {
    config: RelayDeployConfigClass;
}
export declare class RelayCommand extends BaseCommand {
    private readonly profileManager;
    private readonly accountManager;
    private readonly componentFactory;
    static readonly DEPLOY_COMMAND = "relay deploy";
    constructor(profileManager: ProfileManager, accountManager: AccountManager, componentFactory: ComponentFactoryApi);
    static readonly COMMAND_NAME = "relay";
    private static readonly DEPLOY_CONFIGS_NAME;
    private static readonly DEPLOY_FLAGS_LIST;
    private static readonly DESTROY_FLAGS_LIST;
    private prepareValuesArgForRelay;
    /**
     * created a JSON string to represent the map between the node keys and their ids
     * output example '{"node-1": "0.0.3", "node-2": "0.004"}'
     */
    private prepareNetworkJsonString;
    private prepareReleaseName;
    private deploy;
    private destroy;
    getCommandDefinition(): CommandDefinition;
    /** Adds the relay component to remote config. */
    addRelayComponent(): SoloListrTask<RelayDeployContext>;
    /** Remove the relay component from remote config. */
    disableRelayComponent(): SoloListrTask<RelayDestroyContext>;
    close(): Promise<void>;
}
export {};
