/**
 * SPDX-License-Identifier: Apache-2.0
 */
import { type NodeAlias } from '../types/aliases.js';
import { type PodName } from './kube/resources/pod/pod_name.js';
import { type NamespaceName } from './kube/resources/namespace/namespace_name.js';
import { type ClusterRef, type Context, type DeploymentName } from './config/remote/types.js';
export declare class NetworkNodeServices {
    readonly clusterRef?: ClusterRef;
    readonly context?: Context;
    readonly deployment?: DeploymentName;
    readonly nodeAlias: NodeAlias;
    readonly namespace: NamespaceName;
    readonly nodeId: string | number;
    readonly nodePodName?: PodName;
    readonly haProxyName?: string;
    readonly haProxyLoadBalancerIp?: string;
    readonly haProxyClusterIp: string;
    readonly haProxyGrpcPort: string | number;
    readonly haProxyGrpcsPort: string | number;
    readonly accountId?: string;
    readonly haProxyAppSelector: string;
    readonly haProxyPodName: PodName;
    readonly nodeServiceName: string;
    readonly nodeServiceClusterIp: string;
    readonly nodeServiceLoadBalancerIp: string;
    readonly nodeServiceGossipPort: string | number;
    readonly nodeServiceGrpcPort: string | number;
    readonly nodeServiceGrpcsPort: string | number;
    readonly envoyProxyName: string;
    readonly envoyProxyClusterIp?: string;
    readonly envoyProxyLoadBalancerIp?: string;
    readonly envoyProxyGrpcWebPort: number;
    constructor(builder: NetworkNodeServicesBuilder);
    key(): `node${number}`;
}
export declare class NetworkNodeServicesBuilder {
    readonly nodeAlias: NodeAlias;
    namespace?: NamespaceName;
    clusterRef?: ClusterRef;
    context?: Context;
    deployment?: DeploymentName;
    nodeId?: string | number;
    haProxyName?: string;
    accountId?: string;
    haProxyClusterIp: string;
    envoyProxyGrpcWebPort: number;
    envoyProxyLoadBalancerIp?: string;
    haProxyLoadBalancerIp?: string;
    haProxyGrpcPort: string | number;
    haProxyGrpcsPort: string | number;
    haProxyAppSelector: string;
    haProxyPodName: PodName;
    nodeServiceName: any;
    nodeServiceClusterIp: string;
    nodeServiceGrpcsPort: string | number;
    envoyProxyClusterIp?: string;
    envoyProxyName: string;
    nodeServiceLoadBalancerIp: string;
    nodeServiceGossipPort: string | number;
    nodeServiceGrpcPort: string | number;
    nodePodName?: PodName;
    constructor(nodeAlias: NodeAlias);
    withNamespace(namespace: NamespaceName): this;
    withClusterRef(clusterRef: ClusterRef): this;
    withContext(context: Context): this;
    withDeployment(deployment: DeploymentName): this;
    withNodeId(nodeId: string | number): this;
    withAccountId(accountId: string): this;
    withHaProxyName(haProxyName: string): this;
    withHaProxyClusterIp(haProxyClusterIp: string): this;
    withHaProxyLoadBalancerIp(haProxyLoadBalancerIp: string | undefined): this;
    withHaProxyGrpcPort(haProxyGrpcPort: string | number): this;
    withHaProxyGrpcsPort(haProxyGrpcsPort: string | number): this;
    withHaProxyAppSelector(haProxyAppSelector: string): this;
    withHaProxyPodName(haProxyPodName: PodName): this;
    withNodePodName(nodePodName: PodName): this;
    withNodeServiceName(nodeServiceName: string): this;
    withNodeServiceClusterIp(nodeServiceClusterIp: string): this;
    withNodeServiceLoadBalancerIp(nodeServiceLoadBalancerIp: string): this;
    withNodeServiceGossipPort(nodeServiceGossipPort: string | number): this;
    withNodeServiceGrpcPort(nodeServiceGrpcPort: string | number): this;
    withNodeServiceGrpcsPort(nodeServiceGrpcsPort: string | number): this;
    withEnvoyProxyName(envoyProxyName: string): this;
    withEnvoyProxyClusterIp(envoyProxyClusterIp: string | undefined): this;
    withEnvoyProxyLoadBalancerIp(envoyProxyLoadBalancerIp?: string): this;
    withEnvoyProxyGrpcWebPort(envoyProxyGrpcWebPort: number): this;
    build(): NetworkNodeServices;
    key(): `node${number}`;
}
