import _m0 from 'protobufjs/minimal'; import { LogOptions } from '../../../../yandex/cloud/apploadbalancer/v1/logging'; import { Duration } from '../../../../google/protobuf/duration'; import { Target } from '../../../../yandex/cloud/apploadbalancer/v1/target_group'; export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1"; /** * An application load balancer resource. * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer). */ export interface LoadBalancer { /** ID of the application load balancer. Generated at creation time. */ id: string; /** Name of the application load balancer. The name is unique within the folder. */ name: string; /** Description of the application load balancer. */ description: string; /** ID of the folder that the application load balancer belongs to. */ folderId: string; /** * Application load balancer labels as `key:value` pairs. * For details about the concept, see [documentation](/docs/overview/concepts/services#labels). */ labels: { [key: string]: string; }; /** Status of the application load balancer. */ status: LoadBalancer_Status; /** ID of the region that the application load balancer is located at. */ regionId: string; /** ID of the network that the application load balancer belongs to. */ networkId: string; /** * Listeners that belong to the application load balancer. * * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#listener). */ listeners: Listener[]; /** * Locality settings of the application load balancer. * * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lb-location). */ allocationPolicy?: AllocationPolicy; /** * ID of the log group that stores access logs of the application load balancer. * * The logs can be accessed using a Cloud Functions [trigger for Cloud Logs](/docs/functions/operations/trigger/cloud-logging-trigger-create). */ logGroupId: string; /** * ID's of the security groups attributed to the application load balancer. * * For details about the concept, * see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#security-groups). */ securityGroupIds: string[]; /** Creation timestamp. */ createdAt?: Date; /** * Scaling settings of the application load balancer. * * The scaling settings relate to a special internal instance group which facilitates the balancer's work. * Instances in this group are called _resource units_. The group is scaled automatically based on incoming load * and within limitations specified in these settings. * * For details about the concept, * see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lcu-scaling). */ autoScalePolicy?: AutoScalePolicy; /** Cloud logging settings of the application load balancer. */ logOptions?: LogOptions; /** Specifies whether application load balancer is available to zonal shift. */ allowZonalShift: boolean; } export declare enum LoadBalancer_Status { STATUS_UNSPECIFIED = 0, /** CREATING - The application load balancer is being created. */ CREATING = 1, /** STARTING - The application load balancer is being started. */ STARTING = 2, /** ACTIVE - The application load balancer is active and sends traffic to the targets. */ ACTIVE = 3, /** STOPPING - The application load balancer is being stopped. */ STOPPING = 4, /** STOPPED - The application load balancer is stopped and doesn't send traffic to the targets. */ STOPPED = 5, /** DELETING - The application load balancer is being deleted. */ DELETING = 6, UNRECOGNIZED = -1 } export declare function loadBalancer_StatusFromJSON(object: any): LoadBalancer_Status; export declare function loadBalancer_StatusToJSON(object: LoadBalancer_Status): string; export interface LoadBalancer_LabelsEntry { key: string; value: string; } /** An endpoint address resource. */ export interface Address { /** Public IPv4 endpoint address. */ externalIpv4Address?: ExternalIpv4Address | undefined; /** * Internal IPv4 endpoint address. * * To enable the use of listeners with internal addresses, [contact support](/docs/support/overview#response-time). */ internalIpv4Address?: InternalIpv4Address | undefined; /** Public IPv6 endpoint address. */ externalIpv6Address?: ExternalIpv6Address | undefined; } /** A public (external) IPv4 endpoint address resource. */ export interface ExternalIpv4Address { /** IPv4 address. */ address: string; } /** An internal IPv4 endpoint address resource. */ export interface InternalIpv4Address { /** IPv4 address. */ address: string; /** ID of the subnet that the address belongs to. */ subnetId: string; } /** A public (external) IPv4 endpoint address resource. */ export interface ExternalIpv6Address { /** IPv6 address. */ address: string; } /** * An application load balancer location resource. * * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lb-location). */ export interface Location { /** * ID of the availability zone where the application load balancer resides. * * Each availability zone can only be specified once. */ zoneId: string; /** ID of the subnet that the application load balancer belongs to. */ subnetId: string; /** * Disables the load balancer node in the specified availability zone. * * Backends in the availability zone are not directly affected by this setting. * They still may receive traffic from the load balancer nodes in other availability zones, * subject to [LoadBalancingConfig.locality_aware_routing_percent] and [LoadBalancingConfig.strict_locality] settings. */ disableTraffic: boolean; /** Show zonal shift status for the location. */ zonalShiftActive: boolean; } /** A locality settings (allocation policy) resource. */ export interface AllocationPolicy { /** Availability zones and subnets that the application load balancer resides. */ locations: Location[]; } /** * A listener resource. * * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#listener). */ export interface Listener { /** * Name of the listener. The name is unique within the application load balancer. * The string length in characters is 3-63. */ name: string; /** * Endpoints of the listener. * * Endpoints are defined by their IP addresses and ports. */ endpoints: Endpoint[]; /** Unencrypted HTTP listener settings. */ http?: HttpListener | undefined; /** * TLS-encrypted HTTP or TCP stream listener settings. * * All handlers within a listener ([TlsListener.default_handler] and [TlsListener.sni_handlers]) must be of one * type, [HttpHandler] or [StreamHandler]. Mixing HTTP and TCP stream traffic in a TLS-encrypted listener is not * supported. */ tls?: TlsListener | undefined; /** Unencrypted stream (TCP) listener settings. */ stream?: StreamListener | undefined; } /** An endpoint resource. */ export interface Endpoint { /** Endpoint public (external) and internal addresses. */ addresses: Address[]; /** Endpoint ports. */ ports: number[]; } /** An HTTP listener resource. */ export interface HttpListener { /** * Settings for handling HTTP requests. * * Only one of `handler` and [redirects] can be specified. */ handler?: HttpHandler; /** * Redirects settings. * * Only one of `redirects` and [handler] can be specified. */ redirects?: Redirects; } /** TLS-encrypted (HTTP or TCP stream) listener resource. */ export interface TlsListener { /** * Settings for handling requests by default, with Server Name * Indication (SNI) not matching any of the [sni_handlers]. */ defaultHandler?: TlsHandler; /** * Settings for handling requests with Server Name Indication (SNI) * matching one of [SniMatch.server_names] values. */ sniHandlers: SniMatch[]; } /** A stream (TCP) listener resource. */ export interface StreamListener { /** Settings for handling stream (TCP) requests. */ handler?: StreamHandler; } /** An HTTP/2 options resource. */ export interface Http2Options { /** Maximum number of concurrent HTTP/2 streams in a connection. */ maxConcurrentStreams: number; } /** A stream (TCP) handler resource. */ export interface StreamHandler { /** * ID of the backend group processing requests. For details about the concept, see * [documentation](/docs/application-load-balancer/concepts/backend-group). * * The backend group type, specified via [BackendGroup.backend], must be `stream`. * * To get the list of all available backend groups, make a [BackendGroupService.List] request. */ backendGroupId: string; /** * The idle timeout is duration during which no data is transmitted or received on either the upstream or downstream connection. * If not configured, the default idle timeout is 1 hour. Setting it to 0 disables the timeout. */ idleTimeout?: Duration; } /** An HTTP handler resource. */ export interface HttpHandler { /** * ID of the HTTP router processing requests. For details about the concept, see * [documentation](/docs/application-load-balancer/concepts/http-router). * * To get the list of all available HTTP routers, make a [HttpRouterService.List] request. */ httpRouterId: string; /** * HTTP/2 settings. * * If specified, incoming HTTP/2 requests are supported by the listener. */ http2Options?: Http2Options | undefined; /** Enables support for incoming HTTP/1.0 and HTTP/1.1 requests and disables it for HTTP/2 requests. */ allowHttp10: boolean | undefined; /** When unset, will preserve the incoming x-request-id header, otherwise would rewrite it with a new value. */ rewriteRequestId: boolean; } /** A listener redirects resource. */ export interface Redirects { /** * Redirects all unencrypted HTTP requests to the same URI with scheme changed to `https`. * * The setting has the same effect as a single, catch-all [HttpRoute] * with [RedirectAction.replace_scheme] set to `https`. */ httpToHttps: boolean; } /** A SNI handler resource. */ export interface SniMatch { /** Name of the SNI handler. */ name: string; /** Server names that are matched by the SNI handler. */ serverNames: string[]; /** Settings for handling requests with Server Name Indication (SNI) matching one of [server_names] values. */ handler?: TlsHandler; } /** A TLS-encrypted (HTTP or TCP stream) handler resource. */ export interface TlsHandler { /** HTTP handler. */ httpHandler?: HttpHandler | undefined; /** Stream (TCP) handler. */ streamHandler?: StreamHandler | undefined; /** * ID's of the TLS server certificates from [Certificate Manager](/docs/certificate-manager/). * * RSA and ECDSA certificates are supported, and only the first certificate of each type is used. */ certificateIds: string[]; } /** A target state resource. */ export interface TargetState { /** Health of the target, i.e. its statuses in all availability zones. */ status?: TargetState_HealthcheckStatus; /** Target. */ target?: Target; } /** Supported target statuses. */ export declare enum TargetState_Status { STATUS_UNSPECIFIED = 0, /** * HEALTHY - All of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] are passed * (the number depends on the [HealthCheck.healthy_threshold] setting) and the target is ready to receive traffic. */ HEALTHY = 1, /** * PARTIALLY_HEALTHY - Some of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] failed * (the number depends on the [HealthCheck.unhealthy_threshold] setting). * The target is ready to receive traffic from the load balancer nodes which, based on their health checks, * consider the target healthy. */ PARTIALLY_HEALTHY = 2, /** * UNHEALTHY - All of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] failed * (the number depends on the [HealthCheck.unhealthy_threshold] setting) and the target is not receiving traffic. */ UNHEALTHY = 3, /** DRAINING - Target is being deleted and the application load balancer is no longer sending traffic to this target. */ DRAINING = 4, TIMEOUT = 5, UNRECOGNIZED = -1 } export declare function targetState_StatusFromJSON(object: any): TargetState_Status; export declare function targetState_StatusToJSON(object: TargetState_Status): string; /** Health of the target. */ export interface TargetState_HealthcheckStatus { /** Statuses of the target in its availability zones. */ zoneStatuses: TargetState_ZoneHealthcheckStatus[]; } /** Health of the target in the availability zone. */ export interface TargetState_ZoneHealthcheckStatus { /** ID of the availability zone. */ zoneId: string; /** Status of the target in the availability zone. */ status: TargetState_Status; /** * Indicates whether the target has been marked `UNHEALTHY` due to failing active health checks, * which determine target statuses as configured in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks]. * * Currently the only type of health checks is active, as described above. * Passive health checks, which determine the health of a target based on its responses to production requests * (HTTP 5xx status codes, connection errors etc.), are not implemented yet. */ failedActiveHc: boolean; } /** A resource for scaling settings of an application load balancer. */ export interface AutoScalePolicy { /** * Lower limit for the number of resource units in each availability zone. * * If not specified previously (using other instruments such as management console), the default value is 2. * To revert to it, specify it explicitly. * * The minimum value is 2. */ minZoneSize: number; /** * Upper limit for the total number of resource units across all availability zones. * * If a positive value is specified, it must be at least [min_zone_size] multiplied by the size of * [AllocationPolicy.locations]. * * If the value is 0, there is no upper limit. */ maxSize: number; } export declare const LoadBalancer: { encode(message: LoadBalancer, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): LoadBalancer; fromJSON(object: any): LoadBalancer; toJSON(message: LoadBalancer): unknown; fromPartial, never>) | undefined; status?: LoadBalancer_Status | undefined; regionId?: string | undefined; networkId?: string | undefined; listeners?: ({ name?: string | undefined; endpoints?: { addresses?: { externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; }[] | undefined; ports?: number[] | undefined; }[] | undefined; http?: { handler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; redirects?: { httpToHttps?: boolean | undefined; } | undefined; } | undefined; tls?: { defaultHandler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; sniHandlers?: { name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] | undefined; } | undefined; stream?: { handler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; } | undefined; }[] & ({ name?: string | undefined; endpoints?: { addresses?: { externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; }[] | undefined; ports?: number[] | undefined; }[] | undefined; http?: { handler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; redirects?: { httpToHttps?: boolean | undefined; } | undefined; } | undefined; tls?: { defaultHandler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; sniHandlers?: { name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] | undefined; } | undefined; stream?: { handler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; } | undefined; } & { name?: string | undefined; endpoints?: ({ addresses?: { externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; }[] | undefined; ports?: number[] | undefined; }[] & ({ addresses?: { externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; }[] | undefined; ports?: number[] | undefined; } & { addresses?: ({ externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; }[] & ({ externalIpv4Address?: { address?: string | undefined; } | undefined; internalIpv4Address?: { address?: string | undefined; subnetId?: string | undefined; } | undefined; externalIpv6Address?: { address?: string | undefined; } | undefined; } & { externalIpv4Address?: ({ address?: string | undefined; } & { address?: string | undefined; } & Record, never>) | undefined; internalIpv4Address?: ({ address?: string | undefined; subnetId?: string | undefined; } & { address?: string | undefined; subnetId?: string | undefined; } & Record, never>) | undefined; externalIpv6Address?: ({ address?: string | undefined; } & { address?: string | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; ports?: (number[] & number[] & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; http?: ({ handler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; redirects?: { httpToHttps?: boolean | undefined; } | undefined; } & { handler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; redirects?: ({ httpToHttps?: boolean | undefined; } & { httpToHttps?: boolean | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; tls?: ({ defaultHandler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; sniHandlers?: { name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] | undefined; } & { defaultHandler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; sniHandlers?: ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] & ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; } & { name?: string | undefined; serverNames?: (string[] & string[] & Record, never>) | undefined; handler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>) | undefined; stream?: ({ handler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; } & { handler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; allocationPolicy?: ({ locations?: { zoneId?: string | undefined; subnetId?: string | undefined; disableTraffic?: boolean | undefined; zonalShiftActive?: boolean | undefined; }[] | undefined; } & { locations?: ({ zoneId?: string | undefined; subnetId?: string | undefined; disableTraffic?: boolean | undefined; zonalShiftActive?: boolean | undefined; }[] & ({ zoneId?: string | undefined; subnetId?: string | undefined; disableTraffic?: boolean | undefined; zonalShiftActive?: boolean | undefined; } & { zoneId?: string | undefined; subnetId?: string | undefined; disableTraffic?: boolean | undefined; zonalShiftActive?: boolean | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>) | undefined; logGroupId?: string | undefined; securityGroupIds?: (string[] & string[] & Record, never>) | undefined; createdAt?: Date | undefined; autoScalePolicy?: ({ minZoneSize?: number | undefined; maxSize?: number | undefined; } & { minZoneSize?: number | undefined; maxSize?: number | undefined; } & Record, never>) | undefined; logOptions?: ({ logGroupId?: string | undefined; discardRules?: { httpCodes?: number[] | undefined; httpCodeIntervals?: import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] | undefined; grpcCodes?: import("../../../../google/rpc/code").Code[] | undefined; discardPercent?: number | undefined; }[] | undefined; disable?: boolean | undefined; } & { logGroupId?: string | undefined; discardRules?: ({ httpCodes?: number[] | undefined; httpCodeIntervals?: import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] | undefined; grpcCodes?: import("../../../../google/rpc/code").Code[] | undefined; discardPercent?: number | undefined; }[] & ({ httpCodes?: number[] | undefined; httpCodeIntervals?: import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] | undefined; grpcCodes?: import("../../../../google/rpc/code").Code[] | undefined; discardPercent?: number | undefined; } & { httpCodes?: (number[] & number[] & Record, never>) | undefined; httpCodeIntervals?: (import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] & import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] & Record, never>) | undefined; grpcCodes?: (import("../../../../google/rpc/code").Code[] & import("../../../../google/rpc/code").Code[] & Record, never>) | undefined; discardPercent?: number | undefined; } & Record, never>)[] & Record, never>) | undefined; disable?: boolean | undefined; } & Record, never>) | undefined; allowZonalShift?: boolean | undefined; } & Record, never>>(object: I): LoadBalancer; }; export declare const LoadBalancer_LabelsEntry: { encode(message: LoadBalancer_LabelsEntry, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): LoadBalancer_LabelsEntry; fromJSON(object: any): LoadBalancer_LabelsEntry; toJSON(message: LoadBalancer_LabelsEntry): unknown; fromPartial, never>>(object: I): LoadBalancer_LabelsEntry; }; export declare const Address: { encode(message: Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Address; fromJSON(object: any): Address; toJSON(message: Address): unknown; fromPartial, never>) | undefined; internalIpv4Address?: ({ address?: string | undefined; subnetId?: string | undefined; } & { address?: string | undefined; subnetId?: string | undefined; } & Record, never>) | undefined; externalIpv6Address?: ({ address?: string | undefined; } & { address?: string | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): Address; }; export declare const ExternalIpv4Address: { encode(message: ExternalIpv4Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ExternalIpv4Address; fromJSON(object: any): ExternalIpv4Address; toJSON(message: ExternalIpv4Address): unknown; fromPartial, never>>(object: I): ExternalIpv4Address; }; export declare const InternalIpv4Address: { encode(message: InternalIpv4Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): InternalIpv4Address; fromJSON(object: any): InternalIpv4Address; toJSON(message: InternalIpv4Address): unknown; fromPartial, never>>(object: I): InternalIpv4Address; }; export declare const ExternalIpv6Address: { encode(message: ExternalIpv6Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ExternalIpv6Address; fromJSON(object: any): ExternalIpv6Address; toJSON(message: ExternalIpv6Address): unknown; fromPartial, never>>(object: I): ExternalIpv6Address; }; export declare const Location: { encode(message: Location, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Location; fromJSON(object: any): Location; toJSON(message: Location): unknown; fromPartial, never>>(object: I): Location; }; export declare const AllocationPolicy: { encode(message: AllocationPolicy, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AllocationPolicy; fromJSON(object: any): AllocationPolicy; toJSON(message: AllocationPolicy): unknown; fromPartial, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): AllocationPolicy; }; export declare const Listener: { encode(message: Listener, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Listener; fromJSON(object: any): Listener; toJSON(message: Listener): unknown; fromPartial, never>) | undefined; internalIpv4Address?: ({ address?: string | undefined; subnetId?: string | undefined; } & { address?: string | undefined; subnetId?: string | undefined; } & Record, never>) | undefined; externalIpv6Address?: ({ address?: string | undefined; } & { address?: string | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; ports?: (number[] & number[] & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; http?: ({ handler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; redirects?: { httpToHttps?: boolean | undefined; } | undefined; } & { handler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; redirects?: ({ httpToHttps?: boolean | undefined; } & { httpToHttps?: boolean | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; tls?: ({ defaultHandler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; sniHandlers?: { name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] | undefined; } & { defaultHandler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; sniHandlers?: ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] & ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; } & { name?: string | undefined; serverNames?: (string[] & string[] & Record, never>) | undefined; handler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>) | undefined; stream?: ({ handler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; } & { handler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): Listener; }; export declare const Endpoint: { encode(message: Endpoint, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Endpoint; fromJSON(object: any): Endpoint; toJSON(message: Endpoint): unknown; fromPartial, never>) | undefined; internalIpv4Address?: ({ address?: string | undefined; subnetId?: string | undefined; } & { address?: string | undefined; subnetId?: string | undefined; } & Record, never>) | undefined; externalIpv6Address?: ({ address?: string | undefined; } & { address?: string | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; ports?: (number[] & number[] & Record, never>) | undefined; } & Record, never>>(object: I): Endpoint; }; export declare const HttpListener: { encode(message: HttpListener, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HttpListener; fromJSON(object: any): HttpListener; toJSON(message: HttpListener): unknown; fromPartial, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; redirects?: ({ httpToHttps?: boolean | undefined; } & { httpToHttps?: boolean | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): HttpListener; }; export declare const TlsListener: { encode(message: TlsListener, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TlsListener; fromJSON(object: any): TlsListener; toJSON(message: TlsListener): unknown; fromPartial, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; sniHandlers?: ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; }[] & ({ name?: string | undefined; serverNames?: string[] | undefined; handler?: { httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } | undefined; } & { name?: string | undefined; serverNames?: (string[] & string[] & Record, never>) | undefined; handler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): TlsListener; }; export declare const StreamListener: { encode(message: StreamListener, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): StreamListener; fromJSON(object: any): StreamListener; toJSON(message: StreamListener): unknown; fromPartial, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): StreamListener; }; export declare const Http2Options: { encode(message: Http2Options, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Http2Options; fromJSON(object: any): Http2Options; toJSON(message: Http2Options): unknown; fromPartial, never>>(object: I): Http2Options; }; export declare const StreamHandler: { encode(message: StreamHandler, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): StreamHandler; fromJSON(object: any): StreamHandler; toJSON(message: StreamHandler): unknown; fromPartial, never>) | undefined; } & Record, never>>(object: I): StreamHandler; }; export declare const HttpHandler: { encode(message: HttpHandler, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HttpHandler; fromJSON(object: any): HttpHandler; toJSON(message: HttpHandler): unknown; fromPartial, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>>(object: I): HttpHandler; }; export declare const Redirects: { encode(message: Redirects, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Redirects; fromJSON(object: any): Redirects; toJSON(message: Redirects): unknown; fromPartial, never>>(object: I): Redirects; }; export declare const SniMatch: { encode(message: SniMatch, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): SniMatch; fromJSON(object: any): SniMatch; toJSON(message: SniMatch): unknown; fromPartial, never>) | undefined; handler?: ({ httpHandler?: { httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } | undefined; streamHandler?: { backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; certificateIds?: string[] | undefined; } & { httpHandler?: ({ httpRouterId?: string | undefined; http2Options?: { maxConcurrentStreams?: number | undefined; } | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & { httpRouterId?: string | undefined; http2Options?: ({ maxConcurrentStreams?: number | undefined; } & { maxConcurrentStreams?: number | undefined; } & Record, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): SniMatch; }; export declare const TlsHandler: { encode(message: TlsHandler, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TlsHandler; fromJSON(object: any): TlsHandler; toJSON(message: TlsHandler): unknown; fromPartial, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record, never>) | undefined; streamHandler?: ({ backendGroupId?: string | undefined; idleTimeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } & { backendGroupId?: string | undefined; idleTimeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; certificateIds?: (string[] & string[] & Record, never>) | undefined; } & Record, never>>(object: I): TlsHandler; }; export declare const TargetState: { encode(message: TargetState, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TargetState; fromJSON(object: any): TargetState; toJSON(message: TargetState): unknown; fromPartial, never>)[] & Record, never>) | undefined; } & Record, never>) | undefined; target?: ({ ipAddress?: string | undefined; subnetId?: string | undefined; privateIpv4Address?: boolean | undefined; } & { ipAddress?: string | undefined; subnetId?: string | undefined; privateIpv4Address?: boolean | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): TargetState; }; export declare const TargetState_HealthcheckStatus: { encode(message: TargetState_HealthcheckStatus, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TargetState_HealthcheckStatus; fromJSON(object: any): TargetState_HealthcheckStatus; toJSON(message: TargetState_HealthcheckStatus): unknown; fromPartial, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): TargetState_HealthcheckStatus; }; export declare const TargetState_ZoneHealthcheckStatus: { encode(message: TargetState_ZoneHealthcheckStatus, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TargetState_ZoneHealthcheckStatus; fromJSON(object: any): TargetState_ZoneHealthcheckStatus; toJSON(message: TargetState_ZoneHealthcheckStatus): unknown; fromPartial, never>>(object: I): TargetState_ZoneHealthcheckStatus; }; export declare const AutoScalePolicy: { encode(message: AutoScalePolicy, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AutoScalePolicy; fromJSON(object: any): AutoScalePolicy; toJSON(message: AutoScalePolicy): unknown; fromPartial, never>>(object: I): AutoScalePolicy; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};