import _m0 from 'protobufjs/minimal';
import { MaintenanceWindow, MaintenanceOperation } from '../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance';
import { ElasticsearchConfigSet7 } from '../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch';
export declare const protobufPackage = "yandex.cloud.mdb.elasticsearch.v1";
/**
 * An Elasticsearch cluster resource.
 * For more information, see the [Concepts](/docs/managed-elasticsearch/concepts) section of the documentation.
 */
export interface Cluster {
    /**
     * ID of the Elasticsearch cluster.
     * This ID is assigned at creation time.
     */
    id: string;
    /** ID of the folder that the Elasticsearch cluster belongs to. */
    folderId: string;
    /** Creation timestamp. */
    createdAt?: Date;
    /**
     * Name of the Elasticsearch cluster.
     * The name must be unique within the folder. 1-63 characters long.
     */
    name: string;
    /** Description of the Elasticsearch cluster. 0-256 characters long. */
    description: string;
    /**
     * Custom labels for the Elasticsearch cluster as `key:value` pairs.
     * A maximum of 64 labels per resource is allowed.
     */
    labels: {
        [key: string]: string;
    };
    /** Deployment environment of the Elasticsearch cluster. */
    environment: Cluster_Environment;
    /** Description of monitoring systems relevant to the Elasticsearch cluster. */
    monitoring: Monitoring[];
    /** Configuration of the Elasticsearch cluster. */
    config?: ClusterConfig;
    /** ID of the network that the cluster belongs to. */
    networkId: string;
    /** Aggregated cluster health. */
    health: Cluster_Health;
    /** Current state of the cluster. */
    status: Cluster_Status;
    /** User security groups */
    securityGroupIds: string[];
    /** ID of the service account used for access to Object Storage. */
    serviceAccountId: string;
    /** Deletion Protection inhibits deletion of the cluster */
    deletionProtection: boolean;
    /** Window of maintenance operations. */
    maintenanceWindow?: MaintenanceWindow;
    /** Maintenance operation planned at nearest maintenance_window. */
    plannedOperation?: MaintenanceOperation;
}
export declare enum Cluster_Environment {
    ENVIRONMENT_UNSPECIFIED = 0,
    /** PRODUCTION - Stable environment with a conservative update policy when only hotfixes are applied during regular maintenance. */
    PRODUCTION = 1,
    /** PRESTABLE - Environment with a more aggressive update policy when new versions are rolled out irrespective of backward compatibility. */
    PRESTABLE = 2,
    UNRECOGNIZED = -1
}
export declare function cluster_EnvironmentFromJSON(object: any): Cluster_Environment;
export declare function cluster_EnvironmentToJSON(object: Cluster_Environment): string;
export declare enum Cluster_Health {
    /** HEALTH_UNKNOWN - State of the cluster is unknown ([Host.health] of all hosts in the cluster is `UNKNOWN`). */
    HEALTH_UNKNOWN = 0,
    /** ALIVE - Cluster is alive and well ([Host.health] of all hosts in the cluster is `ALIVE`). */
    ALIVE = 1,
    /** DEAD - Cluster is inoperable ([Host.health] of all hosts in the cluster is `DEAD`). */
    DEAD = 2,
    /** DEGRADED - Cluster is in degraded state ([Host.health] of at least one of the hosts in the cluster is not `ALIVE`). */
    DEGRADED = 3,
    UNRECOGNIZED = -1
}
export declare function cluster_HealthFromJSON(object: any): Cluster_Health;
export declare function cluster_HealthToJSON(object: Cluster_Health): string;
export declare enum Cluster_Status {
    /** STATUS_UNKNOWN - Cluster state is unknown. */
    STATUS_UNKNOWN = 0,
    /** CREATING - Cluster is being created. */
    CREATING = 1,
    /** RUNNING - Cluster is running normally. */
    RUNNING = 2,
    /** ERROR - Cluster encountered a problem and cannot operate. */
    ERROR = 3,
    /** UPDATING - Cluster is being updated. */
    UPDATING = 4,
    /** STOPPING - Cluster is stopping. */
    STOPPING = 5,
    /** STOPPED - Cluster stopped. */
    STOPPED = 6,
    /** STARTING - Cluster is starting. */
    STARTING = 7,
    UNRECOGNIZED = -1
}
export declare function cluster_StatusFromJSON(object: any): Cluster_Status;
export declare function cluster_StatusToJSON(object: Cluster_Status): string;
export interface Cluster_LabelsEntry {
    key: string;
    value: string;
}
/** Metadata of monitoring system. */
export interface Monitoring {
    /** Name of the monitoring system. */
    name: string;
    /** Description of the monitoring system. */
    description: string;
    /** Link to the monitoring system charts for the Elasticsearch cluster. */
    link: string;
}
export interface ClusterConfig {
    /** Elasticsearch version. */
    version: string;
    /** Configuration and resource allocation for Elasticsearch nodes. */
    elasticsearch?: Elasticsearch;
    /** ElasticSearch edition. */
    edition: string;
}
export interface Elasticsearch {
    /** Configuration and resource allocation for Elasticsearch data nodes. */
    dataNode?: Elasticsearch_DataNode;
    /** Configuration and resource allocation for Elasticsearch master nodes. */
    masterNode?: Elasticsearch_MasterNode;
    /** Cluster wide plugins */
    plugins: string[];
}
export interface Elasticsearch_DataNode {
    /** Elasticsearch 7.x data node configuration. */
    elasticsearchConfigSet7?: ElasticsearchConfigSet7 | undefined;
    /** Resources allocated to Elasticsearch data nodes. */
    resources?: Resources;
}
export interface Elasticsearch_MasterNode {
    /** Resources allocated to Elasticsearch master nodes. */
    resources?: Resources;
}
/** Computational resources. */
export interface Resources {
    /**
     * ID of the preset for computational resources available to a host (CPU, memory etc.).
     * All available presets are listed in the [documentation](/docs/managed-elasticsearch/concepts/instance-types).
     */
    resourcePresetId: string;
    /** Volume of the storage available to a host, in bytes. */
    diskSize: number;
    /**
     * Type of the storage environment for the host.
     * All available types are listed in the [documentation](/docs/managed-elasticsearch/concepts/storage).
     */
    diskTypeId: string;
}
/** Cluster host metadata. */
export interface Host {
    /** Name of the host. */
    name: string;
    /** ID of the Elasticsearch cluster. */
    clusterId: string;
    /** ID of the availability zone where the host resides. */
    zoneId: string;
    /** Host type. */
    type: Host_Type;
    resources?: Resources;
    /** Aggregated host health data. If the field has default value, it is not returned in the response. */
    health: Host_Health;
    /** Services provided by the host. */
    services: Service[];
    /** ID of the subnet the host resides in. */
    subnetId: string;
    /**
     * The flag that defines whether a public IP address is assigned to the host.
     *
     * If the value is `true`, then this host is available on the Internet via it's public IP address.
     */
    assignPublicIp: boolean;
}
export declare enum Host_Type {
    /** TYPE_UNSPECIFIED - Host type is unspecified. Default value. */
    TYPE_UNSPECIFIED = 0,
    /** DATA_NODE - The host is an Elasticsearch data node. */
    DATA_NODE = 1,
    /** MASTER_NODE - The host is an Elasticsearch master node. */
    MASTER_NODE = 2,
    UNRECOGNIZED = -1
}
export declare function host_TypeFromJSON(object: any): Host_Type;
export declare function host_TypeToJSON(object: Host_Type): string;
export declare enum Host_Health {
    /** UNKNOWN - Health of the host is unknown. */
    UNKNOWN = 0,
    /** ALIVE - The host is performing all its functions normally. */
    ALIVE = 1,
    /** DEAD - The host is inoperable and cannot perform any of its essential functions. */
    DEAD = 2,
    /** DEGRADED - The host is degraded and can perform only some of its essential functions. */
    DEGRADED = 3,
    UNRECOGNIZED = -1
}
export declare function host_HealthFromJSON(object: any): Host_Health;
export declare function host_HealthToJSON(object: Host_Health): string;
/** Cluster service metadata. */
export interface Service {
    /** Type of the service provided by the host. */
    type: Service_Type;
    /** Service health data. If the field has default value, it is not returned in the response. */
    health: Service_Health;
}
export declare enum Service_Type {
    TYPE_UNSPECIFIED = 0,
    /** ELASTICSEARCH - The Elasticsearch service. */
    ELASTICSEARCH = 1,
    UNRECOGNIZED = -1
}
export declare function service_TypeFromJSON(object: any): Service_Type;
export declare function service_TypeToJSON(object: Service_Type): string;
export declare enum Service_Health {
    /** UNKNOWN - Health of the service is unknown. */
    UNKNOWN = 0,
    /** ALIVE - The service is working normally. */
    ALIVE = 1,
    /** DEAD - The service is dead or unresponsive. */
    DEAD = 2,
    UNRECOGNIZED = -1
}
export declare function service_HealthFromJSON(object: any): Service_Health;
export declare function service_HealthToJSON(object: Service_Health): string;
export declare const Cluster: {
    encode(message: Cluster, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Cluster;
    fromJSON(object: any): Cluster;
    toJSON(message: Cluster): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        folderId?: string | undefined;
        createdAt?: Date | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        environment?: Cluster_Environment | undefined;
        monitoring?: {
            name?: string | undefined;
            description?: string | undefined;
            link?: string | undefined;
        }[] | undefined;
        config?: {
            version?: string | undefined;
            elasticsearch?: {
                dataNode?: {
                    elasticsearchConfigSet7?: {
                        effectiveConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        userConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        defaultConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                masterNode?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                plugins?: string[] | undefined;
            } | undefined;
            edition?: string | undefined;
        } | undefined;
        networkId?: string | undefined;
        health?: Cluster_Health | undefined;
        status?: Cluster_Status | undefined;
        securityGroupIds?: string[] | undefined;
        serviceAccountId?: string | undefined;
        deletionProtection?: boolean | undefined;
        maintenanceWindow?: {
            anytime?: {} | undefined;
            weeklyMaintenanceWindow?: {
                day?: import("../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } | undefined;
        } | undefined;
        plannedOperation?: {
            info?: string | undefined;
            delayedUntil?: Date | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        folderId?: string | undefined;
        createdAt?: Date | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        environment?: Cluster_Environment | undefined;
        monitoring?: ({
            name?: string | undefined;
            description?: string | undefined;
            link?: string | undefined;
        }[] & ({
            name?: string | undefined;
            description?: string | undefined;
            link?: string | undefined;
        } & {
            name?: string | undefined;
            description?: string | undefined;
            link?: string | undefined;
        } & Record<Exclude<keyof I["monitoring"][number], keyof Monitoring>, never>)[] & Record<Exclude<keyof I["monitoring"], keyof {
            name?: string | undefined;
            description?: string | undefined;
            link?: string | undefined;
        }[]>, never>) | undefined;
        config?: ({
            version?: string | undefined;
            elasticsearch?: {
                dataNode?: {
                    elasticsearchConfigSet7?: {
                        effectiveConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        userConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        defaultConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                masterNode?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                plugins?: string[] | undefined;
            } | undefined;
            edition?: string | undefined;
        } & {
            version?: string | undefined;
            elasticsearch?: ({
                dataNode?: {
                    elasticsearchConfigSet7?: {
                        effectiveConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        userConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        defaultConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                masterNode?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                plugins?: string[] | undefined;
            } & {
                dataNode?: ({
                    elasticsearchConfigSet7?: {
                        effectiveConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        userConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        defaultConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } & {
                    elasticsearchConfigSet7?: ({
                        effectiveConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        userConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                        defaultConfig?: {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } | undefined;
                    } & {
                        effectiveConfig?: ({
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["effectiveConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                        userConfig?: ({
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["userConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                        defaultConfig?: ({
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & {
                            maxClauseCount?: number | undefined;
                            fielddataCacheSize?: string | undefined;
                            reindexRemoteWhitelist?: string | undefined;
                            reindexSslCaPath?: string | undefined;
                        } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["defaultConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                    } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"], keyof ElasticsearchConfigSet7>, never>) | undefined;
                    resources?: ({
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } & {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"]["resources"], keyof Resources>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["elasticsearch"]["dataNode"], keyof Elasticsearch_DataNode>, never>) | undefined;
                masterNode?: ({
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } & {
                    resources?: ({
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } & {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } & Record<Exclude<keyof I["config"]["elasticsearch"]["masterNode"]["resources"], keyof Resources>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["elasticsearch"]["masterNode"], "resources">, never>) | undefined;
                plugins?: (string[] & string[] & Record<Exclude<keyof I["config"]["elasticsearch"]["plugins"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["config"]["elasticsearch"], keyof Elasticsearch>, never>) | undefined;
            edition?: string | undefined;
        } & Record<Exclude<keyof I["config"], keyof ClusterConfig>, never>) | undefined;
        networkId?: string | undefined;
        health?: Cluster_Health | undefined;
        status?: Cluster_Status | undefined;
        securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["securityGroupIds"], keyof string[]>, never>) | undefined;
        serviceAccountId?: string | undefined;
        deletionProtection?: boolean | undefined;
        maintenanceWindow?: ({
            anytime?: {} | undefined;
            weeklyMaintenanceWindow?: {
                day?: import("../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } | undefined;
        } & {
            anytime?: ({} & {} & Record<Exclude<keyof I["maintenanceWindow"]["anytime"], never>, never>) | undefined;
            weeklyMaintenanceWindow?: ({
                day?: import("../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } & {
                day?: import("../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } & Record<Exclude<keyof I["maintenanceWindow"]["weeklyMaintenanceWindow"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/maintenance").WeeklyMaintenanceWindow>, never>) | undefined;
        } & Record<Exclude<keyof I["maintenanceWindow"], keyof MaintenanceWindow>, never>) | undefined;
        plannedOperation?: ({
            info?: string | undefined;
            delayedUntil?: Date | undefined;
        } & {
            info?: string | undefined;
            delayedUntil?: Date | undefined;
        } & Record<Exclude<keyof I["plannedOperation"], keyof MaintenanceOperation>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Cluster>, never>>(object: I): Cluster;
};
export declare const Cluster_LabelsEntry: {
    encode(message: Cluster_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Cluster_LabelsEntry;
    fromJSON(object: any): Cluster_LabelsEntry;
    toJSON(message: Cluster_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Cluster_LabelsEntry>, never>>(object: I): Cluster_LabelsEntry;
};
export declare const Monitoring: {
    encode(message: Monitoring, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Monitoring;
    fromJSON(object: any): Monitoring;
    toJSON(message: Monitoring): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        description?: string | undefined;
        link?: string | undefined;
    } & {
        name?: string | undefined;
        description?: string | undefined;
        link?: string | undefined;
    } & Record<Exclude<keyof I, keyof Monitoring>, never>>(object: I): Monitoring;
};
export declare const ClusterConfig: {
    encode(message: ClusterConfig, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClusterConfig;
    fromJSON(object: any): ClusterConfig;
    toJSON(message: ClusterConfig): unknown;
    fromPartial<I extends {
        version?: string | undefined;
        elasticsearch?: {
            dataNode?: {
                elasticsearchConfigSet7?: {
                    effectiveConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    userConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    defaultConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            masterNode?: {
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            plugins?: string[] | undefined;
        } | undefined;
        edition?: string | undefined;
    } & {
        version?: string | undefined;
        elasticsearch?: ({
            dataNode?: {
                elasticsearchConfigSet7?: {
                    effectiveConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    userConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    defaultConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            masterNode?: {
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            plugins?: string[] | undefined;
        } & {
            dataNode?: ({
                elasticsearchConfigSet7?: {
                    effectiveConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    userConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    defaultConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } & {
                elasticsearchConfigSet7?: ({
                    effectiveConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    userConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                    defaultConfig?: {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } | undefined;
                } & {
                    effectiveConfig?: ({
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & Record<Exclude<keyof I["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["effectiveConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                    userConfig?: ({
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & Record<Exclude<keyof I["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["userConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                    defaultConfig?: ({
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & {
                        maxClauseCount?: number | undefined;
                        fielddataCacheSize?: string | undefined;
                        reindexRemoteWhitelist?: string | undefined;
                        reindexSslCaPath?: string | undefined;
                    } & Record<Exclude<keyof I["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"]["defaultConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                } & Record<Exclude<keyof I["elasticsearch"]["dataNode"]["elasticsearchConfigSet7"], keyof ElasticsearchConfigSet7>, never>) | undefined;
                resources?: ({
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & Record<Exclude<keyof I["elasticsearch"]["dataNode"]["resources"], keyof Resources>, never>) | undefined;
            } & Record<Exclude<keyof I["elasticsearch"]["dataNode"], keyof Elasticsearch_DataNode>, never>) | undefined;
            masterNode?: ({
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } & {
                resources?: ({
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & Record<Exclude<keyof I["elasticsearch"]["masterNode"]["resources"], keyof Resources>, never>) | undefined;
            } & Record<Exclude<keyof I["elasticsearch"]["masterNode"], "resources">, never>) | undefined;
            plugins?: (string[] & string[] & Record<Exclude<keyof I["elasticsearch"]["plugins"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["elasticsearch"], keyof Elasticsearch>, never>) | undefined;
        edition?: string | undefined;
    } & Record<Exclude<keyof I, keyof ClusterConfig>, never>>(object: I): ClusterConfig;
};
export declare const Elasticsearch: {
    encode(message: Elasticsearch, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Elasticsearch;
    fromJSON(object: any): Elasticsearch;
    toJSON(message: Elasticsearch): unknown;
    fromPartial<I extends {
        dataNode?: {
            elasticsearchConfigSet7?: {
                effectiveConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                userConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                defaultConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
            } | undefined;
            resources?: {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } | undefined;
        } | undefined;
        masterNode?: {
            resources?: {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } | undefined;
        } | undefined;
        plugins?: string[] | undefined;
    } & {
        dataNode?: ({
            elasticsearchConfigSet7?: {
                effectiveConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                userConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                defaultConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
            } | undefined;
            resources?: {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } | undefined;
        } & {
            elasticsearchConfigSet7?: ({
                effectiveConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                userConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
                defaultConfig?: {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } | undefined;
            } & {
                effectiveConfig?: ({
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & Record<Exclude<keyof I["dataNode"]["elasticsearchConfigSet7"]["effectiveConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                userConfig?: ({
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & Record<Exclude<keyof I["dataNode"]["elasticsearchConfigSet7"]["userConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
                defaultConfig?: ({
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & {
                    maxClauseCount?: number | undefined;
                    fielddataCacheSize?: string | undefined;
                    reindexRemoteWhitelist?: string | undefined;
                    reindexSslCaPath?: string | undefined;
                } & Record<Exclude<keyof I["dataNode"]["elasticsearchConfigSet7"]["defaultConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
            } & Record<Exclude<keyof I["dataNode"]["elasticsearchConfigSet7"], keyof ElasticsearchConfigSet7>, never>) | undefined;
            resources?: ({
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } & {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } & Record<Exclude<keyof I["dataNode"]["resources"], keyof Resources>, never>) | undefined;
        } & Record<Exclude<keyof I["dataNode"], keyof Elasticsearch_DataNode>, never>) | undefined;
        masterNode?: ({
            resources?: {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } | undefined;
        } & {
            resources?: ({
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } & {
                resourcePresetId?: string | undefined;
                diskSize?: number | undefined;
                diskTypeId?: string | undefined;
            } & Record<Exclude<keyof I["masterNode"]["resources"], keyof Resources>, never>) | undefined;
        } & Record<Exclude<keyof I["masterNode"], "resources">, never>) | undefined;
        plugins?: (string[] & string[] & Record<Exclude<keyof I["plugins"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Elasticsearch>, never>>(object: I): Elasticsearch;
};
export declare const Elasticsearch_DataNode: {
    encode(message: Elasticsearch_DataNode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Elasticsearch_DataNode;
    fromJSON(object: any): Elasticsearch_DataNode;
    toJSON(message: Elasticsearch_DataNode): unknown;
    fromPartial<I extends {
        elasticsearchConfigSet7?: {
            effectiveConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
            userConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
            defaultConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
        } | undefined;
        resources?: {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } | undefined;
    } & {
        elasticsearchConfigSet7?: ({
            effectiveConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
            userConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
            defaultConfig?: {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } | undefined;
        } & {
            effectiveConfig?: ({
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & Record<Exclude<keyof I["elasticsearchConfigSet7"]["effectiveConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
            userConfig?: ({
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & Record<Exclude<keyof I["elasticsearchConfigSet7"]["userConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
            defaultConfig?: ({
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & {
                maxClauseCount?: number | undefined;
                fielddataCacheSize?: string | undefined;
                reindexRemoteWhitelist?: string | undefined;
                reindexSslCaPath?: string | undefined;
            } & Record<Exclude<keyof I["elasticsearchConfigSet7"]["defaultConfig"], keyof import("../../../../../yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch").ElasticsearchConfig7>, never>) | undefined;
        } & Record<Exclude<keyof I["elasticsearchConfigSet7"], keyof ElasticsearchConfigSet7>, never>) | undefined;
        resources?: ({
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & Record<Exclude<keyof I["resources"], keyof Resources>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Elasticsearch_DataNode>, never>>(object: I): Elasticsearch_DataNode;
};
export declare const Elasticsearch_MasterNode: {
    encode(message: Elasticsearch_MasterNode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Elasticsearch_MasterNode;
    fromJSON(object: any): Elasticsearch_MasterNode;
    toJSON(message: Elasticsearch_MasterNode): unknown;
    fromPartial<I extends {
        resources?: {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } | undefined;
    } & {
        resources?: ({
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & Record<Exclude<keyof I["resources"], keyof Resources>, never>) | undefined;
    } & Record<Exclude<keyof I, "resources">, never>>(object: I): Elasticsearch_MasterNode;
};
export declare const Resources: {
    encode(message: Resources, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Resources;
    fromJSON(object: any): Resources;
    toJSON(message: Resources): unknown;
    fromPartial<I extends {
        resourcePresetId?: string | undefined;
        diskSize?: number | undefined;
        diskTypeId?: string | undefined;
    } & {
        resourcePresetId?: string | undefined;
        diskSize?: number | undefined;
        diskTypeId?: string | undefined;
    } & Record<Exclude<keyof I, keyof Resources>, never>>(object: I): Resources;
};
export declare const Host: {
    encode(message: Host, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Host;
    fromJSON(object: any): Host;
    toJSON(message: Host): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        clusterId?: string | undefined;
        zoneId?: string | undefined;
        type?: Host_Type | undefined;
        resources?: {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } | undefined;
        health?: Host_Health | undefined;
        services?: {
            type?: Service_Type | undefined;
            health?: Service_Health | undefined;
        }[] | undefined;
        subnetId?: string | undefined;
        assignPublicIp?: boolean | undefined;
    } & {
        name?: string | undefined;
        clusterId?: string | undefined;
        zoneId?: string | undefined;
        type?: Host_Type | undefined;
        resources?: ({
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & {
            resourcePresetId?: string | undefined;
            diskSize?: number | undefined;
            diskTypeId?: string | undefined;
        } & Record<Exclude<keyof I["resources"], keyof Resources>, never>) | undefined;
        health?: Host_Health | undefined;
        services?: ({
            type?: Service_Type | undefined;
            health?: Service_Health | undefined;
        }[] & ({
            type?: Service_Type | undefined;
            health?: Service_Health | undefined;
        } & {
            type?: Service_Type | undefined;
            health?: Service_Health | undefined;
        } & Record<Exclude<keyof I["services"][number], keyof Service>, never>)[] & Record<Exclude<keyof I["services"], keyof {
            type?: Service_Type | undefined;
            health?: Service_Health | undefined;
        }[]>, never>) | undefined;
        subnetId?: string | undefined;
        assignPublicIp?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof Host>, never>>(object: I): Host;
};
export declare const Service: {
    encode(message: Service, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Service;
    fromJSON(object: any): Service;
    toJSON(message: Service): unknown;
    fromPartial<I extends {
        type?: Service_Type | undefined;
        health?: Service_Health | undefined;
    } & {
        type?: Service_Type | undefined;
        health?: Service_Health | undefined;
    } & Record<Exclude<keyof I, keyof Service>, never>>(object: I): Service;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
