import _m0 from 'protobufjs/minimal';
import { MaintenanceWindow, MaintenanceOperation } from '../../../../../yandex/cloud/mdb/spqr/v1/maintenance';
import { SPQRConfig } from '../../../../../yandex/cloud/mdb/spqr/v1/config';
import { TimeOfDay } from '../../../../../google/type/timeofday';
export declare const protobufPackage = "yandex.cloud.mdb.spqr.v1";
/** A managed SPQR cluster. For more information, see the [documentation](/docs/managed-spqr/concepts). */
export interface Cluster {
    /**
     * ID of the SPQR cluster.
     * This ID is assigned by MDB at creation time.
     */
    id: string;
    /** ID of the folder that the SPQR cluster belongs to. */
    folderId: string;
    /** Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */
    createdAt?: Date;
    /**
     * Name of the SPQR cluster.
     * The name is unique within the folder. 1-63 characters long.
     */
    name: string;
    /** Description of the SPQR cluster. 0-256 characters long. */
    description: string;
    /** Custom labels for the SPQR cluster as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** Deployment environment of the SPQR cluster. */
    environment: Cluster_Environment;
    /** Description of monitoring systems relevant to the SPQR cluster. */
    monitoring: Monitoring[];
    /** Configuration of the SPQR 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;
    /** Maintenance window for the cluster. */
    maintenanceWindow?: MaintenanceWindow;
    /** Planned maintenance operation to be started for the cluster within the nearest [maintenance_window]. */
    plannedOperation?: MaintenanceOperation;
    /** User security groups */
    securityGroupIds: string[];
    /** Deletion Protection inhibits deletion of the cluster */
    deletionProtection: boolean;
}
/** Deployment environment. */
export declare enum Cluster_Environment {
    ENVIRONMENT_UNSPECIFIED = 0,
    /**
     * PRODUCTION - Stable environment with a conservative update policy: only hotfixes
     * are applied during regular maintenance.
     */
    PRODUCTION = 1,
    /**
     * PRESTABLE - Environment with more aggressive update policy: 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] for every host in the cluster is UNKNOWN). */
    HEALTH_UNKNOWN = 0,
    /** ALIVE - Cluster is alive and well ([Host.health] for every host in the cluster is ALIVE). */
    ALIVE = 1,
    /** DEAD - Cluster is inoperable ([Host.health] for every host in the cluster is DEAD). */
    DEAD = 2,
    /** DEGRADED - Cluster is working below capacity ([Host.health] for at least one host 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;
}
/** 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 SPQR cluster. */
    link: string;
}
export interface ClusterConfig {
    /** Configuration for SPQR servers in the cluster. */
    spqrConfig?: SPQRConfig;
    /** Time to start the daily backup, in the UTC timezone. */
    backupWindowStart?: TimeOfDay;
    /** Retain period of automatically created backup in days */
    backupRetainPeriodDays?: number;
    /** Access policy to DB */
    access?: Access;
    soxAudit?: boolean;
}
export interface Access {
    /** Allow access for DataLens. */
    dataLens: boolean;
    /** Allow access for Web SQL. */
    webSql: boolean;
    /** Allow access for DataTransfer. */
    dataTransfer: boolean;
    /**
     * Allow access for Serverless.
     * NOTE: Do not propagate to public API until Serverless integration is required.
     */
    serverless: boolean;
}
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?: {
            spqrConfig?: {
                router?: {
                    config?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                coordinator?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                postgresql?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                infra?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                    router?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    coordinator?: {} | undefined;
                } | undefined;
                logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
                balancer?: {
                    cpuThreshold?: number | undefined;
                    spaceThreshold?: number | undefined;
                    statIntervalSec?: number | undefined;
                    maxMoveCount?: number | undefined;
                    keysPerMove?: number | undefined;
                    timeout?: number | undefined;
                } | undefined;
            } | undefined;
            backupWindowStart?: {
                hours?: number | undefined;
                minutes?: number | undefined;
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            backupRetainPeriodDays?: number | undefined;
            access?: {
                dataLens?: boolean | undefined;
                webSql?: boolean | undefined;
                dataTransfer?: boolean | undefined;
                serverless?: boolean | undefined;
            } | undefined;
            soxAudit?: boolean | undefined;
        } | undefined;
        networkId?: string | undefined;
        health?: Cluster_Health | undefined;
        status?: Cluster_Status | undefined;
        maintenanceWindow?: {
            anytime?: {} | undefined;
            weeklyMaintenanceWindow?: {
                day?: import("../../../../../yandex/cloud/mdb/spqr/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } | undefined;
        } | undefined;
        plannedOperation?: {
            info?: string | undefined;
            delayedUntil?: Date | undefined;
            latestMaintenanceTime?: Date | undefined;
            nextMaintenanceWindowTime?: Date | undefined;
        } | undefined;
        securityGroupIds?: string[] | undefined;
        deletionProtection?: boolean | 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?: ({
            spqrConfig?: {
                router?: {
                    config?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                coordinator?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                postgresql?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                infra?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                    router?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    coordinator?: {} | undefined;
                } | undefined;
                logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
                balancer?: {
                    cpuThreshold?: number | undefined;
                    spaceThreshold?: number | undefined;
                    statIntervalSec?: number | undefined;
                    maxMoveCount?: number | undefined;
                    keysPerMove?: number | undefined;
                    timeout?: number | undefined;
                } | undefined;
            } | undefined;
            backupWindowStart?: {
                hours?: number | undefined;
                minutes?: number | undefined;
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            backupRetainPeriodDays?: number | undefined;
            access?: {
                dataLens?: boolean | undefined;
                webSql?: boolean | undefined;
                dataTransfer?: boolean | undefined;
                serverless?: boolean | undefined;
            } | undefined;
            soxAudit?: boolean | undefined;
        } & {
            spqrConfig?: ({
                router?: {
                    config?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                coordinator?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                postgresql?: {
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } | undefined;
                infra?: {
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                    router?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    coordinator?: {} | undefined;
                } | undefined;
                logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
                balancer?: {
                    cpuThreshold?: number | undefined;
                    spaceThreshold?: number | undefined;
                    statIntervalSec?: number | undefined;
                    maxMoveCount?: number | undefined;
                    keysPerMove?: number | undefined;
                    timeout?: number | undefined;
                } | undefined;
            } & {
                router?: ({
                    config?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } & {
                    config?: ({
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } & {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: (number[] & number[] & Record<Exclude<keyof I["config"]["spqrConfig"]["router"]["config"]["timeQuantiles"], keyof number[]>, never>) | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } & Record<Exclude<keyof I["config"]["spqrConfig"]["router"]["config"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings>, 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"]["spqrConfig"]["router"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["spqrConfig"]["router"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterConfig>, never>) | undefined;
                coordinator?: ({
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } & {
                    config?: ({} & {} & Record<Exclude<keyof I["config"]["spqrConfig"]["coordinator"]["config"], never>, 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"]["spqrConfig"]["coordinator"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["spqrConfig"]["coordinator"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").CoordinatorConfig>, never>) | undefined;
                postgresql?: ({
                    config?: {} | undefined;
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                } & {
                    config?: ({} & {} & Record<Exclude<keyof I["config"]["spqrConfig"]["postgresql"]["config"], never>, 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"]["spqrConfig"]["postgresql"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["spqrConfig"]["postgresql"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").PostgreSQLConfig>, never>) | undefined;
                infra?: ({
                    resources?: {
                        resourcePresetId?: string | undefined;
                        diskSize?: number | undefined;
                        diskTypeId?: string | undefined;
                    } | undefined;
                    router?: {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } | undefined;
                    coordinator?: {} | 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"]["spqrConfig"]["infra"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
                    router?: ({
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: number[] | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } & {
                        showNoticeMessages?: boolean | undefined;
                        timeQuantiles?: (number[] & number[] & Record<Exclude<keyof I["config"]["spqrConfig"]["infra"]["router"]["timeQuantiles"], keyof number[]>, never>) | undefined;
                        defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                        preferSameAvailabilityZone?: boolean | undefined;
                    } & Record<Exclude<keyof I["config"]["spqrConfig"]["infra"]["router"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings>, never>) | undefined;
                    coordinator?: ({} & {} & Record<Exclude<keyof I["config"]["spqrConfig"]["infra"]["coordinator"], never>, never>) | undefined;
                } & Record<Exclude<keyof I["config"]["spqrConfig"]["infra"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").InfraConfig>, never>) | undefined;
                logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
                balancer?: ({
                    cpuThreshold?: number | undefined;
                    spaceThreshold?: number | undefined;
                    statIntervalSec?: number | undefined;
                    maxMoveCount?: number | undefined;
                    keysPerMove?: number | undefined;
                    timeout?: number | undefined;
                } & {
                    cpuThreshold?: number | undefined;
                    spaceThreshold?: number | undefined;
                    statIntervalSec?: number | undefined;
                    maxMoveCount?: number | undefined;
                    keysPerMove?: number | undefined;
                    timeout?: number | undefined;
                } & Record<Exclude<keyof I["config"]["spqrConfig"]["balancer"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").BalancerSettings>, never>) | undefined;
            } & Record<Exclude<keyof I["config"]["spqrConfig"], keyof SPQRConfig>, never>) | undefined;
            backupWindowStart?: ({
                hours?: number | undefined;
                minutes?: number | undefined;
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                hours?: number | undefined;
                minutes?: number | undefined;
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & Record<Exclude<keyof I["config"]["backupWindowStart"], keyof TimeOfDay>, never>) | undefined;
            backupRetainPeriodDays?: number | undefined;
            access?: ({
                dataLens?: boolean | undefined;
                webSql?: boolean | undefined;
                dataTransfer?: boolean | undefined;
                serverless?: boolean | undefined;
            } & {
                dataLens?: boolean | undefined;
                webSql?: boolean | undefined;
                dataTransfer?: boolean | undefined;
                serverless?: boolean | undefined;
            } & Record<Exclude<keyof I["config"]["access"], keyof Access>, never>) | undefined;
            soxAudit?: boolean | undefined;
        } & Record<Exclude<keyof I["config"], keyof ClusterConfig>, never>) | undefined;
        networkId?: string | undefined;
        health?: Cluster_Health | undefined;
        status?: Cluster_Status | undefined;
        maintenanceWindow?: ({
            anytime?: {} | undefined;
            weeklyMaintenanceWindow?: {
                day?: import("../../../../../yandex/cloud/mdb/spqr/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/spqr/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } & {
                day?: import("../../../../../yandex/cloud/mdb/spqr/v1/maintenance").WeeklyMaintenanceWindow_WeekDay | undefined;
                hour?: number | undefined;
            } & Record<Exclude<keyof I["maintenanceWindow"]["weeklyMaintenanceWindow"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/maintenance").WeeklyMaintenanceWindow>, never>) | undefined;
        } & Record<Exclude<keyof I["maintenanceWindow"], keyof MaintenanceWindow>, never>) | undefined;
        plannedOperation?: ({
            info?: string | undefined;
            delayedUntil?: Date | undefined;
            latestMaintenanceTime?: Date | undefined;
            nextMaintenanceWindowTime?: Date | undefined;
        } & {
            info?: string | undefined;
            delayedUntil?: Date | undefined;
            latestMaintenanceTime?: Date | undefined;
            nextMaintenanceWindowTime?: Date | undefined;
        } & Record<Exclude<keyof I["plannedOperation"], keyof MaintenanceOperation>, never>) | undefined;
        securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["securityGroupIds"], keyof string[]>, never>) | undefined;
        deletionProtection?: boolean | 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 {
        spqrConfig?: {
            router?: {
                config?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            coordinator?: {
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            postgresql?: {
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            infra?: {
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
                router?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                coordinator?: {} | undefined;
            } | undefined;
            logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
            balancer?: {
                cpuThreshold?: number | undefined;
                spaceThreshold?: number | undefined;
                statIntervalSec?: number | undefined;
                maxMoveCount?: number | undefined;
                keysPerMove?: number | undefined;
                timeout?: number | undefined;
            } | undefined;
        } | undefined;
        backupWindowStart?: {
            hours?: number | undefined;
            minutes?: number | undefined;
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
        backupRetainPeriodDays?: number | undefined;
        access?: {
            dataLens?: boolean | undefined;
            webSql?: boolean | undefined;
            dataTransfer?: boolean | undefined;
            serverless?: boolean | undefined;
        } | undefined;
        soxAudit?: boolean | undefined;
    } & {
        spqrConfig?: ({
            router?: {
                config?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            coordinator?: {
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            postgresql?: {
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } | undefined;
            infra?: {
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
                router?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                coordinator?: {} | undefined;
            } | undefined;
            logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
            balancer?: {
                cpuThreshold?: number | undefined;
                spaceThreshold?: number | undefined;
                statIntervalSec?: number | undefined;
                maxMoveCount?: number | undefined;
                keysPerMove?: number | undefined;
                timeout?: number | undefined;
            } | undefined;
        } & {
            router?: ({
                config?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } & {
                config?: ({
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } & {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: (number[] & number[] & Record<Exclude<keyof I["spqrConfig"]["router"]["config"]["timeQuantiles"], keyof number[]>, never>) | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } & Record<Exclude<keyof I["spqrConfig"]["router"]["config"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings>, 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["spqrConfig"]["router"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
            } & Record<Exclude<keyof I["spqrConfig"]["router"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterConfig>, never>) | undefined;
            coordinator?: ({
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } & {
                config?: ({} & {} & Record<Exclude<keyof I["spqrConfig"]["coordinator"]["config"], never>, 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["spqrConfig"]["coordinator"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
            } & Record<Exclude<keyof I["spqrConfig"]["coordinator"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").CoordinatorConfig>, never>) | undefined;
            postgresql?: ({
                config?: {} | undefined;
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
            } & {
                config?: ({} & {} & Record<Exclude<keyof I["spqrConfig"]["postgresql"]["config"], never>, 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["spqrConfig"]["postgresql"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
            } & Record<Exclude<keyof I["spqrConfig"]["postgresql"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").PostgreSQLConfig>, never>) | undefined;
            infra?: ({
                resources?: {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } | undefined;
                router?: {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } | undefined;
                coordinator?: {} | undefined;
            } & {
                resources?: ({
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & {
                    resourcePresetId?: string | undefined;
                    diskSize?: number | undefined;
                    diskTypeId?: string | undefined;
                } & Record<Exclude<keyof I["spqrConfig"]["infra"]["resources"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").Resources>, never>) | undefined;
                router?: ({
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: number[] | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } & {
                    showNoticeMessages?: boolean | undefined;
                    timeQuantiles?: (number[] & number[] & Record<Exclude<keyof I["spqrConfig"]["infra"]["router"]["timeQuantiles"], keyof number[]>, never>) | undefined;
                    defaultRouteBehavior?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings_DefaultRouteBehavior | undefined;
                    preferSameAvailabilityZone?: boolean | undefined;
                } & Record<Exclude<keyof I["spqrConfig"]["infra"]["router"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").RouterSettings>, never>) | undefined;
                coordinator?: ({} & {} & Record<Exclude<keyof I["spqrConfig"]["infra"]["coordinator"], never>, never>) | undefined;
            } & Record<Exclude<keyof I["spqrConfig"]["infra"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").InfraConfig>, never>) | undefined;
            logLevel?: import("../../../../../yandex/cloud/mdb/spqr/v1/config").LogLevel | undefined;
            balancer?: ({
                cpuThreshold?: number | undefined;
                spaceThreshold?: number | undefined;
                statIntervalSec?: number | undefined;
                maxMoveCount?: number | undefined;
                keysPerMove?: number | undefined;
                timeout?: number | undefined;
            } & {
                cpuThreshold?: number | undefined;
                spaceThreshold?: number | undefined;
                statIntervalSec?: number | undefined;
                maxMoveCount?: number | undefined;
                keysPerMove?: number | undefined;
                timeout?: number | undefined;
            } & Record<Exclude<keyof I["spqrConfig"]["balancer"], keyof import("../../../../../yandex/cloud/mdb/spqr/v1/config").BalancerSettings>, never>) | undefined;
        } & Record<Exclude<keyof I["spqrConfig"], keyof SPQRConfig>, never>) | undefined;
        backupWindowStart?: ({
            hours?: number | undefined;
            minutes?: number | undefined;
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            hours?: number | undefined;
            minutes?: number | undefined;
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["backupWindowStart"], keyof TimeOfDay>, never>) | undefined;
        backupRetainPeriodDays?: number | undefined;
        access?: ({
            dataLens?: boolean | undefined;
            webSql?: boolean | undefined;
            dataTransfer?: boolean | undefined;
            serverless?: boolean | undefined;
        } & {
            dataLens?: boolean | undefined;
            webSql?: boolean | undefined;
            dataTransfer?: boolean | undefined;
            serverless?: boolean | undefined;
        } & Record<Exclude<keyof I["access"], keyof Access>, never>) | undefined;
        soxAudit?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof ClusterConfig>, never>>(object: I): ClusterConfig;
};
export declare const Access: {
    encode(message: Access, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Access;
    fromJSON(object: any): Access;
    toJSON(message: Access): unknown;
    fromPartial<I extends {
        dataLens?: boolean | undefined;
        webSql?: boolean | undefined;
        dataTransfer?: boolean | undefined;
        serverless?: boolean | undefined;
    } & {
        dataLens?: boolean | undefined;
        webSql?: boolean | undefined;
        dataTransfer?: boolean | undefined;
        serverless?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof Access>, never>>(object: I): Access;
};
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 {};
