import { XdsDecodeContext, XdsDecodeResult, XdsResourceType } from "./xds-resource-type"; import { LoadBalancingConfig, experimental } from "@grpc/grpc-js"; import { XdsServerConfig } from "../xds-bootstrap"; import { Any__Output } from "../generated/google/protobuf/Any"; import { Watcher, XdsClient } from "../xds-client"; import { StringMatcher__Output } from "../generated/envoy/type/matcher/v3/StringMatcher"; export interface SecurityUpdate { caCertificateProviderInstance: string; identityCertificateProviderInstance?: string; subjectAltNameMatchers: StringMatcher__Output[]; } export interface CdsUpdate { type: 'AGGREGATE' | 'EDS' | 'LOGICAL_DNS'; name: string; aggregateChildren: string[]; lrsLoadReportingServer?: XdsServerConfig; maxConcurrentRequests?: number; edsServiceName?: string; dnsHostname?: string; lbPolicyConfig: LoadBalancingConfig[]; outlierDetectionUpdate?: experimental.OutlierDetectionRawConfig; securityUpdate?: SecurityUpdate; } export declare class ClusterResourceType extends XdsResourceType { private static singleton; private constructor(); static get(): ClusterResourceType; getTypeUrl(): string; private validateNonnegativeDuration; private validatePercentage; private validateTransportSocket; private validateResource; decode(context: XdsDecodeContext, resource: Any__Output): XdsDecodeResult; allResourcesRequiredInSotW(): boolean; static startWatch(client: XdsClient, name: string, watcher: Watcher): void; static cancelWatch(client: XdsClient, name: string, watcher: Watcher): void; }