/**
 * Copyright (C) 2024 Hedera Hashgraph, LLC
 *
 * Licensed under the Apache License, Version 2.0 (the ""License"");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an ""AS IS"" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
import type { NodeAlias, PodName } from '../types/aliases.js';
export declare class NetworkNodeServices {
    readonly nodeAlias: NodeAlias;
    readonly namespace: string;
    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?: string;
    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: string): 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}`;
}
