/**
 * Copyright (C) 2024 Hedera Hashgraph, LLC
 *
 * 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
 *
 *      http://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 { type RemoteConfigManager } from '../../core/config/remote/remote_config_manager.js';
import { ConsensusNodeStates } from '../../core/config/remote/enumerations.js';
import { type Lease } from '../../core/lease/lease.js';
import { type BaseCommand, type CommandHandlers } from '../base.js';
import { type ListrTask } from 'listr2';
export declare class NodeCommandHandlers implements CommandHandlers {
    private readonly accountManager;
    private readonly configManager;
    private readonly platformInstaller;
    private readonly logger;
    private readonly k8;
    private readonly tasks;
    private readonly leaseManager;
    readonly remoteConfigManager: RemoteConfigManager;
    private getConfig;
    private prepareChartPath;
    readonly parent: BaseCommand;
    constructor(opts: any);
    static readonly ADD_CONTEXT_FILE = "node-add.json";
    static readonly DELETE_CONTEXT_FILE = "node-delete.json";
    static readonly UPDATE_CONTEXT_FILE = "node-update.json";
    /** ******** Task Lists **********/
    deletePrepareTaskList(argv: any, lease: Lease): any[];
    deleteSubmitTransactionsTaskList(argv: any): import("../../core/task.js").Task[];
    deleteExecuteTaskList(argv: any): import("../../core/task.js").Task[];
    addPrepareTasks(argv: any, lease: Lease): any[];
    addSubmitTransactionsTasks(argv: any): import("../../core/task.js").Task[];
    addExecuteTasks(argv: any): import("../../core/task.js").Task[];
    updatePrepareTasks(argv: any, lease: Lease): any[];
    updateSubmitTransactionsTasks(argv: any): import("../../core/task.js").Task[];
    updateExecuteTasks(argv: any): import("../../core/task.js").Task[];
    /** ******** Handlers **********/
    prepareUpgrade(argv: any): Promise<boolean>;
    freezeUpgrade(argv: any): Promise<boolean>;
    downloadGeneratedFiles(argv: any): Promise<boolean>;
    update(argv: any): Promise<boolean>;
    updatePrepare(argv: any): Promise<boolean>;
    updateSubmitTransactions(argv: any): Promise<boolean>;
    updateExecute(argv: any): Promise<boolean>;
    delete(argv: any): Promise<boolean>;
    deletePrepare(argv: any): Promise<boolean>;
    deleteSubmitTransactions(argv: any): Promise<boolean>;
    deleteExecute(argv: any): Promise<boolean>;
    add(argv: any): Promise<boolean>;
    addPrepare(argv: any): Promise<boolean>;
    addSubmitTransactions(argv: any): Promise<boolean>;
    addExecute(argv: any): Promise<boolean>;
    logs(argv: any): Promise<boolean>;
    states(argv: any): Promise<boolean>;
    refresh(argv: any): Promise<boolean>;
    keys(argv: any): Promise<boolean>;
    stop(argv: any): Promise<boolean>;
    start(argv: any): Promise<boolean>;
    setup(argv: any): Promise<boolean>;
    /** Removes the consensus node, envoy and haproxy components from remote config.  */
    removeNodeAndProxies(): ListrTask<any, any, any>;
    /**
     * Changes the state from all consensus nodes components in remote config.
     *
     * @param state - to which to change the consensus node component
     */
    changeAllNodeStates(state: ConsensusNodeStates): ListrTask<any, any, any>;
    /**
     * Creates tasks to validate that each node state is either one of the accepted states or not one of the excluded.
     *
     * @param acceptedStates - the state at which the nodes can be, not matching any of the states throws an error
     * @param excludedStates - the state at which the nodes can't be, matching any of the states throws an error
     */
    validateAllNodeStates({ acceptedStates, excludedStates, }: {
        acceptedStates?: ConsensusNodeStates[];
        excludedStates?: ConsensusNodeStates[];
    }): ListrTask<any, any, any>;
    /**
     * Creates tasks to validate that specific node state is either one of the accepted states or not one of the excluded.
     *
     * @param acceptedStates - the state at which the node can be, not matching any of the states throws an error
     * @param excludedStates - the state at which the node can't be, matching any of the states throws an error
     */
    validateSingleNodeState({ acceptedStates, excludedStates, }: {
        acceptedStates?: ConsensusNodeStates[];
        excludedStates?: ConsensusNodeStates[];
    }): ListrTask<any, any, any>;
    /**
     * @param nodeAlias - the alias of the node whose state to validate
     * @param components - the component data wrapper
     * @param acceptedStates - the state at which the node can be, not matching any of the states throws an error
     * @param excludedStates - the state at which the node can't be, matching any of the states throws an error
     */
    private validateNodeState;
}
