import { PrivateKey } from '@hashgraph/sdk';
import { type NodeAlias, type NodeAliases } from '../../types/aliases.js';
import { type NetworkNodeServices } from '../../core/network_node_services.js';
import { type NodeAddConfigClass } from './node_add_config.js';
import { type NamespaceName } from '../../core/kube/resources/namespace/namespace_name.js';
import { type PodRef } from '../../core/kube/resources/pod/pod_ref.js';
import { type ConsensusNode } from '../../core/model/consensus_node.js';
export declare const PREPARE_UPGRADE_CONFIGS_NAME = "prepareUpgradeConfig";
export declare const DOWNLOAD_GENERATED_FILES_CONFIGS_NAME = "downloadGeneratedFilesConfig";
export declare const ADD_CONFIGS_NAME = "addConfigs";
export declare const DELETE_CONFIGS_NAME = "deleteConfigs";
export declare const UPDATE_CONFIGS_NAME = "updateConfigs";
export declare const UPGRADE_CONFIGS_NAME = "upgradeConfigs";
export declare const REFRESH_CONFIGS_NAME = "refreshConfigs";
export declare const KEYS_CONFIGS_NAME = "keyConfigs";
export declare const SETUP_CONFIGS_NAME = "setupConfigs";
export declare const START_CONFIGS_NAME = "startConfigs";
export declare const prepareUpgradeConfigBuilder: (argv: any, ctx: any, task: any) => Promise<NodePrepareUpgradeConfigClass>;
export declare const downloadGeneratedFilesConfigBuilder: (argv: any, ctx: any, task: any) => Promise<NodeDownloadGeneratedFilesConfigClass>;
export declare const upgradeConfigBuilder: (argv: any, ctx: any, task: any, shouldLoadNodeClient?: boolean) => Promise<NodeUpgradeConfigClass>;
export declare const updateConfigBuilder: (argv: any, ctx: any, task: any, shouldLoadNodeClient?: boolean) => Promise<NodeUpdateConfigClass>;
export declare const deleteConfigBuilder: (argv: any, ctx: any, task: any, shouldLoadNodeClient?: boolean) => Promise<NodeDeleteConfigClass>;
export declare const addConfigBuilder: (argv: any, ctx: any, task: any, shouldLoadNodeClient?: boolean) => Promise<NodeAddConfigClass>;
export declare const logsConfigBuilder: (argv: any, ctx: any, task: any) => Promise<NodeLogsConfigClass>;
export declare const statesConfigBuilder: (argv: any, ctx: any, task: any) => Promise<{
    namespace: NamespaceName;
    nodeAliases: NodeAliases;
    nodeAliasesUnparsed: any;
    deployment: any;
    consensusNodes: any;
    contexts: any;
}>;
export declare const refreshConfigBuilder: (argv: any, ctx: any, task: any) => Promise<any>;
export declare const keysConfigBuilder: (argv: any, ctx: any, task: any) => NodeKeysConfigClass;
export declare const stopConfigBuilder: (argv: any, ctx: any, task: any) => Promise<any>;
export declare const startConfigBuilder: (argv: any, ctx: any, task: any) => Promise<NodeStartConfigClass>;
export declare const setupConfigBuilder: (argv: any, ctx: any, task: any) => Promise<any>;
export interface NodeLogsConfigClass {
    namespace: NamespaceName;
    deployment: string;
    nodeAliases: string[];
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export interface NodeRefreshConfigClass {
    app: string;
    cacheDir: string;
    devMode: boolean;
    localBuildPath: string;
    namespace: NamespaceName;
    deployment: string;
    nodeAliasesUnparsed: string;
    releaseTag: string;
    nodeAliases: NodeAliases;
    podRefs: Record<NodeAlias, PodRef>;
    getUnusedConfigs: () => string[];
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export interface NodeKeysConfigClass {
    cacheDir: string;
    devMode: boolean;
    generateGossipKeys: boolean;
    generateTlsKeys: boolean;
    nodeAliasesUnparsed: string;
    curDate: Date;
    keysDir: string;
    nodeAliases: NodeAliases;
    getUnusedConfigs: () => string[];
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export interface NodeStartConfigClass {
    app: string;
    cacheDir: string;
    consensusNodes: ConsensusNode[];
    debugNodeAlias: NodeAlias;
    namespace: NamespaceName;
    deployment: string;
    nodeAliases: NodeAliases;
    stagingDir: string;
    podRefs: Record<NodeAlias, PodRef>;
    nodeAliasesUnparsed: string;
    contexts: string[];
}
export interface NodeDeleteConfigClass {
    app: string;
    cacheDir: string;
    chartDirectory: string;
    devMode: boolean;
    debugNodeAlias: NodeAlias;
    endpointType: string;
    soloChartVersion: string;
    localBuildPath: string;
    namespace: NamespaceName;
    deployment: string;
    nodeAlias: NodeAlias;
    releaseTag: string;
    adminKey: PrivateKey;
    allNodeAliases: NodeAliases;
    chartPath: string;
    existingNodeAliases: NodeAliases;
    freezeAdminPrivateKey: string;
    keysDir: string;
    nodeClient: any;
    podRefs: Record<NodeAlias, PodRef>;
    serviceMap: Map<string, NetworkNodeServices>;
    stagingDir: string;
    stagingKeysDir: string;
    treasuryKey: PrivateKey;
    getUnusedConfigs: () => string[];
    curDate: Date;
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export interface NodeSetupConfigClass {
    app: string;
    appConfig: string;
    adminKey: string;
    cacheDir: string;
    devMode: boolean;
    localBuildPath: string;
    namespace: NamespaceName;
    deployment: string;
    nodeAliasesUnparsed: string;
    releaseTag: string;
    nodeAliases: NodeAliases;
    podRefs: Record<NodeAlias, PodRef>;
    consensusNodes: ConsensusNode[];
    skipStop?: boolean;
    keysDir: string;
    stagingDir: string;
    getUnusedConfigs: () => string[];
    contexts: string[];
}
export interface NodeUpgradeConfigClass {
    nodeAliasesUnparsed: string;
    nodeAliases: NodeAliases;
    app: string;
    cacheDir: string;
    chartDirectory: string;
    devMode: boolean;
    debugNodeAlias: NodeAlias;
    soloChartVersion: string;
    localBuildPath: string;
    namespace: NamespaceName;
    deployment: string;
    releaseTag: string;
    adminKey: PrivateKey;
    allNodeAliases: NodeAliases;
    chartPath: string;
    existingNodeAliases: NodeAliases;
    freezeAdminPrivateKey: PrivateKey | string;
    keysDir: string;
    nodeClient: any;
    podRefs: Record<NodeAlias, PodRef>;
    stagingDir: string;
    stagingKeysDir: string;
    treasuryKey: PrivateKey;
    getUnusedConfigs: () => string[];
    curDate: Date;
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export interface NodeUpdateConfigClass {
    app: string;
    cacheDir: string;
    chartDirectory: string;
    devMode: boolean;
    debugNodeAlias: NodeAlias;
    endpointType: string;
    soloChartVersion: string;
    gossipEndpoints: string;
    gossipPrivateKey: string;
    gossipPublicKey: string;
    grpcEndpoints: string;
    localBuildPath: string;
    namespace: NamespaceName;
    deployment: string;
    newAccountNumber: string;
    newAdminKey: PrivateKey;
    nodeAlias: NodeAlias;
    releaseTag: string;
    tlsPrivateKey: string;
    tlsPublicKey: string;
    adminKey: PrivateKey;
    allNodeAliases: NodeAliases;
    chartPath: string;
    existingNodeAliases: NodeAliases;
    freezeAdminPrivateKey: PrivateKey | string;
    keysDir: string;
    nodeClient: any;
    podRefs: Record<NodeAlias, PodRef>;
    serviceMap: Map<string, NetworkNodeServices>;
    stagingDir: string;
    stagingKeysDir: string;
    treasuryKey: PrivateKey;
    getUnusedConfigs: () => string[];
    curDate: Date;
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
interface NodePrepareUpgradeConfigClass {
    cacheDir: string;
    namespace: NamespaceName;
    deployment: string;
    releaseTag: string;
    freezeAdminPrivateKey: string;
    nodeClient: any;
    getUnusedConfigs: () => string[];
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
interface NodeDownloadGeneratedFilesConfigClass {
    cacheDir: string;
    namespace: NamespaceName;
    deployment: string;
    releaseTag: string;
    freezeAdminPrivateKey: string;
    nodeClient: any;
    getUnusedConfigs: () => string[];
    existingNodeAliases: NodeAliases[];
    allNodeAliases: NodeAliases[];
    serviceMap: Map<string, NetworkNodeServices>;
    consensusNodes: ConsensusNode[];
    contexts: string[];
}
export {};
