import { type NamespaceName } from '../../../types/namespace/namespace-name.js';
import { type NodeAlias, type NodeAliases } from '../../../types/aliases.js';
import { type ConsensusNode } from '../../../core/model/consensus-node.js';
import { type PodReference } from '../../../integration/kube/resources/pod/pod-reference.js';
import { type NodeServiceMapping } from '../../../types/mappings/node-service-mapping.js';
export interface NodeCommonConfigClass {
    namespace: NamespaceName;
    deployment: string;
    consensusNodes: ConsensusNode[];
    contexts: string[];
    quiet: boolean;
    keysDir: string;
    stagingDir: string;
}
export interface NodeCommonConfigWithNodeAliases extends NodeCommonConfigClass {
    nodeAliases: NodeAliases;
    nodeAliasesUnparsed: string;
}
export interface NodeCommonConfigWithNodeAlias extends NodeCommonConfigClass {
    nodeAlias: NodeAlias;
}
export interface CheckedNodesConfigClass extends NodeCommonConfigClass {
    podRefs: Record<NodeAlias, PodReference>;
    skipStop: boolean;
    existingNodeAliases: NodeAliases;
    allNodeAliases: NodeAliases;
    serviceMap: NodeServiceMapping;
}
export interface CheckedNodesContext {
    config: CheckedNodesConfigClass;
}
