import { BaseCommand } from './base.js';
import { type ArgvStruct } from '../types/aliases.js';
import { type CommandFlags } from '../types/flag-types.js';
export declare class BlockNodeCommand extends BaseCommand {
    constructor();
    private static readonly ADD_CONFIGS_NAME;
    private static readonly DESTROY_CONFIGS_NAME;
    private static readonly UPGRADE_CONFIGS_NAME;
    private static readonly ADD_EXTERNAL_CONFIGS_NAME;
    private static readonly DELETE_CONFIGS_NAME;
    private static readonly MIGRATION_COMPONENT_KEY;
    static readonly ADD_FLAGS_LIST: CommandFlags;
    static readonly ADD_EXTERNAL_FLAGS_LIST: CommandFlags;
    static readonly DELETE_EXTERNAL_FLAGS_LIST: CommandFlags;
    static readonly DESTROY_FLAGS_LIST: CommandFlags;
    static readonly UPGRADE_FLAGS_LIST: CommandFlags;
    private prepareValuesArgForBlockNode;
    private static appendExtraCommandArgs;
    private getReleaseName;
    private renderReleaseName;
    private updateConsensusNodesInRemoteConfig;
    private updateConsensusNodesPostGenesis;
    private updateConsensusNodesPostGenesisForExternal;
    private handleConsensusNodeUpdating;
    private updateConsensusNodesInRemoteConfigForExternalBlockNode;
    private handleConsensusNodeUpdatingForExternalBlockNode;
    add(argv: ArgvStruct): Promise<boolean>;
    destroy(argv: ArgvStruct): Promise<boolean>;
    upgrade(argv: ArgvStruct): Promise<boolean>;
    addExternal(argv: ArgvStruct): Promise<boolean>;
    deleteExternal(argv: ArgvStruct): Promise<boolean>;
    private rebuildBlockNodesJsonForConsensusNodes;
    /**
     * Gives the port used for liveness check based on the chart version and image tag (if set)
     */
    private getLivenessCheckPortNumber;
    private updateBlockNodeVersionInRemoteConfig;
    private buildBlockNodeUpgradeMigrationPlan;
    private isImmutableStatefulSetError;
    private recreateBlockNodeChart;
    /**
     * Polls until no pods with the block-node label exist in the namespace.
     * Used before re-installing the chart so the new StatefulSet pod is not blocked
     * by a terminating predecessor.
     */
    private waitForBlockNodePodsDeleted;
    /** Adds the block node component to remote config. */
    private addBlockNodeComponent;
    /** Adds the block node component to remote config. */
    private addExternalBlockNodeComponent;
    /** Adds the block node component to remote config. */
    private removeBlockNodeComponentFromRemoteConfig;
    /** Adds the block node component to remote config. */
    private removeExternalBlockNodeComponent;
    private displayHealthCheckData;
    private checkBlockNodeReadiness;
    close(): Promise<void>;
    private inferBlockNodeId;
    private inferExternalBlockNodeId;
    private checkIfLegacyChartIsInstalled;
    private inferDestroyData;
}
export default BlockNodeCommand;
