import { PrivateKey } from '@hashgraph/sdk';
import type { NodeAlias, NodeAliases, PodName } from '../../types/aliases.js';
import type { NetworkNodeServices } from '../../core/network_node_services.js';
import { type NodeAddConfigClass } from './node_add_config.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 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 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) => {
    namespace: any;
    nodeAliases: NodeAliases;
    nodeAliasesUnparsed: any;
};
export declare const statesConfigBuilder: (argv: any, ctx: any, task: any) => {
    namespace: any;
    nodeAliases: NodeAliases;
    nodeAliasesUnparsed: 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: string;
    nodeAliases: string[];
}
export interface NodeRefreshConfigClass {
    app: string;
    cacheDir: string;
    devMode: boolean;
    localBuildPath: string;
    namespace: string;
    nodeAliasesUnparsed: string;
    releaseTag: string;
    nodeAliases: NodeAliases;
    podNames: Record<NodeAlias, PodName>;
    getUnusedConfigs: () => string[];
}
export interface NodeKeysConfigClass {
    cacheDir: string;
    devMode: boolean;
    generateGossipKeys: boolean;
    generateTlsKeys: boolean;
    nodeAliasesUnparsed: string;
    curDate: Date;
    keysDir: string;
    nodeAliases: NodeAliases;
    getUnusedConfigs: () => string[];
}
export interface NodeStopConfigClass {
    namespace: string;
    nodeAliases: NodeAliases;
    podNames: Record<PodName, NodeAlias>;
}
export interface NodeStartConfigClass {
    app: string;
    cacheDir: string;
    debugNodeAlias: NodeAlias;
    namespace: string;
    nodeAliases: NodeAliases;
    stagingDir: string;
    podNames: Record<NodeAlias, PodName>;
    nodeAliasesUnparsed: string;
}
export interface NodeDeleteConfigClass {
    app: string;
    cacheDir: string;
    chartDirectory: string;
    devMode: boolean;
    debugNodeAlias: NodeAlias;
    endpointType: string;
    soloChartVersion: string;
    localBuildPath: string;
    namespace: string;
    nodeAlias: NodeAlias;
    releaseTag: string;
    adminKey: PrivateKey;
    allNodeAliases: NodeAliases;
    chartPath: string;
    existingNodeAliases: NodeAliases;
    freezeAdminPrivateKey: string;
    keysDir: string;
    nodeClient: any;
    podNames: Record<NodeAlias, PodName>;
    serviceMap: Map<string, NetworkNodeServices>;
    stagingDir: string;
    stagingKeysDir: string;
    treasuryKey: PrivateKey;
    getUnusedConfigs: () => string[];
    curDate: Date;
}
export interface NodeSetupConfigClass {
    app: string;
    appConfig: string;
    cacheDir: string;
    devMode: boolean;
    localBuildPath: string;
    namespace: string;
    nodeAliasesUnparsed: string;
    releaseTag: string;
    nodeAliases: NodeAliases;
    podNames: object;
    getUnusedConfigs: () => 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: 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;
    podNames: Record<NodeAlias, PodName>;
    serviceMap: Map<string, NetworkNodeServices>;
    stagingDir: string;
    stagingKeysDir: string;
    treasuryKey: PrivateKey;
    getUnusedConfigs: () => string[];
    curDate: Date;
}
interface NodePrepareUpgradeConfigClass {
    cacheDir: string;
    namespace: string;
    releaseTag: string;
    freezeAdminPrivateKey: string;
    nodeClient: any;
    getUnusedConfigs: () => string[];
}
interface NodeDownloadGeneratedFilesConfigClass {
    cacheDir: string;
    namespace: string;
    releaseTag: string;
    freezeAdminPrivateKey: string;
    nodeClient: any;
    getUnusedConfigs: () => string[];
    existingNodeAliases: NodeAliases[];
    allNodeAliases: NodeAliases[];
    serviceMap: Map<string, NetworkNodeServices>;
}
export {};
