import { experimental, ChannelOptions } from '@grpc/grpc-js'; import Endpoint = experimental.Endpoint; import LoadBalancer = experimental.LoadBalancer; import ChannelControlHelper = experimental.ChannelControlHelper; import TypedLoadBalancingConfig = experimental.TypedLoadBalancingConfig; import StatusOr = experimental.StatusOr; import { Locality__Output } from './generated/envoy/config/core/v3/Locality'; import { ValueMatcher } from './matcher'; import { StringMatcher__Output } from './generated/envoy/type/matcher/v3/StringMatcher'; export declare class SanMatcher implements ValueMatcher { private childMatchers; constructor(matcherConfigs: StringMatcher__Output[]); apply(value: string): boolean; toString(): string; equals(other: SanMatcher): boolean; } export declare const CA_CERT_PROVIDER_KEY = "grpc.internal.ca_cert_provider"; export declare const IDENTITY_CERT_PROVIDER_KEY = "grpc.internal.identity_cert_provider"; export declare const SAN_MATCHER_KEY = "grpc.internal.san_matcher"; export declare function localityToName(locality: Locality__Output): string; export declare const ROOT_CLUSTER_KEY = "grpc.internal.root_cluster"; export declare class CdsLoadBalancer implements LoadBalancer { private readonly channelControlHelper; private childBalancer; private latestConfig; private localityPriorities; private priorityNames; private nextPriorityChildNumber; private latestSanMatcher; constructor(channelControlHelper: ChannelControlHelper); private getNextPriorityName; updateAddressList(endpointList: StatusOr, lbConfig: TypedLoadBalancingConfig, options: ChannelOptions, resolutionNote: string): boolean; exitIdle(): void; resetBackoff(): void; destroy(): void; getTypeName(): string; } export declare function setup(): void;