import { DeploymentPhase } from '../../../data/schema/model/remote/deployment-phase.js';
import { type NodeId } from '../../../types/aliases.js';
import { type NamespaceName } from '../../../types/namespace/namespace-name.js';
import { type ClusterReferenceName, portForwardConfig } from '../../../types/index.js';
import { type RemoteConfigRuntimeStateApi } from '../../../business/runtime-state/api/remote-config-runtime-state-api.js';
import { type ComponentFactoryApi } from './api/component-factory-api.js';
import { RelayNodeStateSchema } from '../../../data/schema/model/remote/state/relay-node-state-schema.js';
import { ExplorerStateSchema } from '../../../data/schema/model/remote/state/explorer-state-schema.js';
import { MirrorNodeStateSchema } from '../../../data/schema/model/remote/state/mirror-node-state-schema.js';
import { HAProxyStateSchema } from '../../../data/schema/model/remote/state/haproxy-state-schema.js';
import { EnvoyProxyStateSchema } from '../../../data/schema/model/remote/state/envoy-proxy-state-schema.js';
import { ConsensusNodeStateSchema } from '../../../data/schema/model/remote/state/consensus-node-state-schema.js';
import { BlockNodeStateSchema } from '../../../data/schema/model/remote/state/block-node-state-schema.js';
export declare class ComponentFactory implements ComponentFactoryApi {
    private readonly remoteConfig;
    constructor(remoteConfig: RemoteConfigRuntimeStateApi);
    createNewRelayComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName, nodeIds: NodeId[]): RelayNodeStateSchema;
    createNewExplorerComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName): ExplorerStateSchema;
    createNewMirrorNodeComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName): MirrorNodeStateSchema;
    createNewHaProxyComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName): HAProxyStateSchema;
    createNewEnvoyProxyComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName): EnvoyProxyStateSchema;
    createNewBlockNodeComponent(clusterReference: ClusterReferenceName, namespace: NamespaceName): BlockNodeStateSchema;
    createNewConsensusNodeComponent(nodeId: NodeId, clusterReference: ClusterReferenceName, namespace: NamespaceName, phase: DeploymentPhase.REQUESTED | DeploymentPhase.STARTED, portForwardConfigs?: portForwardConfig[]): ConsensusNodeStateSchema;
    createConsensusNodeComponentsFromNodeIds(nodeIds: NodeId[], clusterReference: ClusterReferenceName, namespace: NamespaceName, portForwardConfigs?: portForwardConfig[]): ConsensusNodeStateSchema[];
}
