@yandex-cloud/nodejs-sdk
Version:
Yandex.Cloud NodeJS SDK
642 lines (641 loc) • 28.6 kB
TypeScript
import _m0 from "protobufjs/minimal";
import { TimeOfDay } from "../../../../../google/type/timeofday";
import { Mysqlconfigset57 } from "../../../../../yandex/cloud/mdb/mysql/v1alpha/config/mysql5_7";
export declare const protobufPackage = "yandex.cloud.mdb.mysql.v1alpha";
/**
* A MySQL cluster. For more information, see
* the [documentation](/docs/managed-mysql/concepts).
*/
export interface Cluster {
$type: "yandex.cloud.mdb.mysql.v1alpha.Cluster";
/**
* ID of the MySQL cluster.
* This ID is assigned by Managed Service for MySQL at creation time.
*/
id: string;
/** ID of the folder that the MySQL cluster belongs to. */
folderId: string;
createdAt?: Date;
/**
* Name of the MySQL cluster.
* The name must be unique within the folder, comply with RFC 1035
* and be 1-63 characters long.
*/
name: string;
/** Description of the MySQL cluster. 0-256 characters long. */
description: string;
/**
* Custom labels for the MySQL cluster as `key:value` pairs.
* Maximum 64 per resource.
*/
labels: {
[key: string]: string;
};
/** Deployment environment of the MySQL cluster. */
environment: Cluster_Environment;
/** Description of monitoring systems relevant to the MySQL cluster. */
monitoring: Monitoring[];
/** Configuration of the MySQL 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;
}
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 {
$type: "yandex.cloud.mdb.mysql.v1alpha.Cluster.LabelsEntry";
key: string;
value: string;
}
export interface Monitoring {
$type: "yandex.cloud.mdb.mysql.v1alpha.Monitoring";
/** Name of the monitoring system. */
name: string;
/** Description of the monitoring system. */
description: string;
/** Link to the monitoring system charts for the MySQL cluster. */
link: string;
}
export interface ClusterConfig {
$type: "yandex.cloud.mdb.mysql.v1alpha.ClusterConfig";
/** Version of MySQL server software. */
version: string;
/** Configuration of a MySQL 5.7 server. */
mysqlConfig57?: Mysqlconfigset57 | undefined;
/** Resources allocated to MySQL hosts. */
resources?: Resources;
/** Time to start the daily backup, in the UTC timezone. */
backupWindowStart?: TimeOfDay;
}
export interface Host {
$type: "yandex.cloud.mdb.mysql.v1alpha.Host";
/**
* Name of the MySQL host. The host name is assigned by Managed Service for MySQL
* at creation time, and cannot be changed. 1-63 characters long.
*
* The name is unique across all database hosts that exist on the platform,
* as it defines the FQDN of the host.
*/
name: string;
/**
* ID of the MySQL host. The ID is assigned by Managed Service for MySQL
* at creation time.
*/
clusterId: string;
/** ID of the availability zone where the MySQL host resides. */
zoneId: string;
/** Resources allocated to the host. */
resources?: Resources;
/** Role of the host in the cluster. */
role: Host_Role;
/** Status code of the aggregated health of the host. */
health: Host_Health;
/** Services provided by the host. */
services: Service[];
/** ID of the subnet that the host belongs to. */
subnetId: string;
/** Flag showing public IP assignment status to this host. */
assignPublicIp: boolean;
}
export declare enum Host_Role {
/** ROLE_UNKNOWN - Role of the host in the cluster is unknown. */
ROLE_UNKNOWN = 0,
/** MASTER - Host is the master MySQL server in the cluster. */
MASTER = 1,
/** REPLICA - Host is a replica MySQL server in the cluster. */
REPLICA = 2,
UNRECOGNIZED = -1
}
export declare function host_RoleFromJSON(object: any): Host_Role;
export declare function host_RoleToJSON(object: Host_Role): string;
export declare enum Host_Health {
/** HEALTH_UNKNOWN - Health of the host is unknown. */
HEALTH_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;
export interface Service {
$type: "yandex.cloud.mdb.mysql.v1alpha.Service";
/** Type of the service provided by the host. */
type: Service_Type;
/** Status code of server availability. */
health: Service_Health;
}
export declare enum Service_Type {
TYPE_UNSPECIFIED = 0,
/** MYSQL_ERROR - Host provides the MySQL error log. */
MYSQL_ERROR = 1,
/** MYSQL_GENERAL - Host provides the MySQL general query log. */
MYSQL_GENERAL = 2,
/** MYSQL_SLOW_QUERY - Host provides the MySQL slow query log. */
MYSQL_SLOW_QUERY = 3,
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 {
/** HEALTH_UNKNOWN - Health of the server is unknown. */
HEALTH_UNKNOWN = 0,
/** ALIVE - The server is working normally. */
ALIVE = 1,
/** DEAD - The server 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 interface Resources {
$type: "yandex.cloud.mdb.mysql.v1alpha.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-mysql/concepts/instance-types).
*/
resourcePresetId: string;
/** Volume of the storage available to a host. */
diskSize: number;
/**
* Type of the storage environment for the host.
* Possible values:
* * network-ssd - network SSD drive,
* * local-ssd - local SSD storage.
*/
diskTypeId: string;
}
export declare const Cluster: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Cluster";
encode(message: Cluster, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Cluster;
fromJSON(object: any): Cluster;
toJSON(message: Cluster): unknown;
fromPartial<I extends {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
status?: Cluster_Status | undefined;
config?: {
resources?: {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} | undefined;
version?: string | undefined;
backupWindowStart?: {
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} | undefined;
mysqlConfig57?: {
effectiveConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
userConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
defaultConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
folderId?: string | undefined;
labels?: {
[x: string]: string | undefined;
[x: number]: string | undefined;
} | undefined;
networkId?: string | undefined;
health?: Cluster_Health | undefined;
monitoring?: {
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
}[] | undefined;
environment?: Cluster_Environment | undefined;
} & {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
status?: Cluster_Status | undefined;
config?: ({
resources?: {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} | undefined;
version?: string | undefined;
backupWindowStart?: {
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} | undefined;
mysqlConfig57?: {
effectiveConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
userConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
defaultConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
} | undefined;
} & {
resources?: ({
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & Record<Exclude<keyof I["config"]["resources"], "$type" | "diskTypeId" | "diskSize" | "resourcePresetId">, never>) | undefined;
version?: string | undefined;
backupWindowStart?: ({
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} & {
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} & Record<Exclude<keyof I["config"]["backupWindowStart"], "$type" | "seconds" | "nanos" | "hours" | "minutes">, never>) | undefined;
mysqlConfig57?: ({
effectiveConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
userConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
defaultConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
} & {
effectiveConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["config"]["mysqlConfig57"]["effectiveConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
userConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["config"]["mysqlConfig57"]["userConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
defaultConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["config"]["mysqlConfig57"]["defaultConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
} & Record<Exclude<keyof I["config"]["mysqlConfig57"], "$type" | "effectiveConfig" | "userConfig" | "defaultConfig">, never>) | undefined;
} & Record<Exclude<keyof I["config"], "$type" | "resources" | "version" | "backupWindowStart" | "mysqlConfig57">, never>) | undefined;
folderId?: string | undefined;
labels?: ({
[x: string]: string | undefined;
[x: number]: string | undefined;
} & {
[x: string]: string | undefined;
[x: number]: string | undefined;
} & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
networkId?: string | undefined;
health?: Cluster_Health | undefined;
monitoring?: ({
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
}[] & ({
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
} & {
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
} & Record<Exclude<keyof I["monitoring"][number], "$type" | "link" | "description" | "name">, never>)[] & Record<Exclude<keyof I["monitoring"], "$type" | keyof {
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
}[]>, never>) | undefined;
environment?: Cluster_Environment | undefined;
} & Record<Exclude<keyof I, "$type" | "description" | "id" | "name" | "createdAt" | "status" | "config" | "folderId" | "labels" | "networkId" | "health" | "monitoring" | "environment">, never>>(object: I): Cluster;
};
export declare const Cluster_LabelsEntry: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Cluster.LabelsEntry";
encode(message: Cluster_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Cluster_LabelsEntry;
fromJSON(object: any): Cluster_LabelsEntry;
toJSON(message: Cluster_LabelsEntry): unknown;
fromPartial<I extends {
value?: string | undefined;
key?: string | undefined;
} & {
value?: string | undefined;
key?: string | undefined;
} & Record<Exclude<keyof I, "$type" | "value" | "key">, never>>(object: I): Cluster_LabelsEntry;
};
export declare const Monitoring: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Monitoring";
encode(message: Monitoring, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Monitoring;
fromJSON(object: any): Monitoring;
toJSON(message: Monitoring): unknown;
fromPartial<I extends {
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
} & {
link?: string | undefined;
description?: string | undefined;
name?: string | undefined;
} & Record<Exclude<keyof I, "$type" | "link" | "description" | "name">, never>>(object: I): Monitoring;
};
export declare const ClusterConfig: {
$type: "yandex.cloud.mdb.mysql.v1alpha.ClusterConfig";
encode(message: ClusterConfig, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ClusterConfig;
fromJSON(object: any): ClusterConfig;
toJSON(message: ClusterConfig): unknown;
fromPartial<I extends {
resources?: {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} | undefined;
version?: string | undefined;
backupWindowStart?: {
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} | undefined;
mysqlConfig57?: {
effectiveConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
userConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
defaultConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
} | undefined;
} & {
resources?: ({
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & Record<Exclude<keyof I["resources"], "$type" | "diskTypeId" | "diskSize" | "resourcePresetId">, never>) | undefined;
version?: string | undefined;
backupWindowStart?: ({
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} & {
seconds?: number | undefined;
nanos?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
} & Record<Exclude<keyof I["backupWindowStart"], "$type" | "seconds" | "nanos" | "hours" | "minutes">, never>) | undefined;
mysqlConfig57?: ({
effectiveConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
userConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
defaultConfig?: {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} | undefined;
} & {
effectiveConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["mysqlConfig57"]["effectiveConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
userConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["mysqlConfig57"]["userConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
defaultConfig?: ({
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & {
maxConnections?: number | undefined;
innodbBufferPoolSize?: number | undefined;
longQueryTime?: number | undefined;
} & Record<Exclude<keyof I["mysqlConfig57"]["defaultConfig"], "$type" | "maxConnections" | "innodbBufferPoolSize" | "longQueryTime">, never>) | undefined;
} & Record<Exclude<keyof I["mysqlConfig57"], "$type" | "effectiveConfig" | "userConfig" | "defaultConfig">, never>) | undefined;
} & Record<Exclude<keyof I, "$type" | "resources" | "version" | "backupWindowStart" | "mysqlConfig57">, never>>(object: I): ClusterConfig;
};
export declare const Host: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Host";
encode(message: Host, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Host;
fromJSON(object: any): Host;
toJSON(message: Host): unknown;
fromPartial<I extends {
name?: string | undefined;
role?: Host_Role | undefined;
subnetId?: string | undefined;
zoneId?: string | undefined;
resources?: {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} | undefined;
services?: {
type?: Service_Type | undefined;
health?: Service_Health | undefined;
}[] | undefined;
health?: Host_Health | undefined;
clusterId?: string | undefined;
assignPublicIp?: boolean | undefined;
} & {
name?: string | undefined;
role?: Host_Role | undefined;
subnetId?: string | undefined;
zoneId?: string | undefined;
resources?: ({
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & Record<Exclude<keyof I["resources"], "$type" | "diskTypeId" | "diskSize" | "resourcePresetId">, never>) | 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], "$type" | "type" | "health">, never>)[] & Record<Exclude<keyof I["services"], "$type" | keyof {
type?: Service_Type | undefined;
health?: Service_Health | undefined;
}[]>, never>) | undefined;
health?: Host_Health | undefined;
clusterId?: string | undefined;
assignPublicIp?: boolean | undefined;
} & Record<Exclude<keyof I, "$type" | "name" | "role" | "subnetId" | "zoneId" | "resources" | "services" | "health" | "clusterId" | "assignPublicIp">, never>>(object: I): Host;
};
export declare const Service: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Service";
encode(message: Service, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): 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, "$type" | "type" | "health">, never>>(object: I): Service;
};
export declare const Resources: {
$type: "yandex.cloud.mdb.mysql.v1alpha.Resources";
encode(message: Resources, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Resources;
fromJSON(object: any): Resources;
toJSON(message: Resources): unknown;
fromPartial<I extends {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & {
diskTypeId?: string | undefined;
diskSize?: number | undefined;
resourcePresetId?: string | undefined;
} & Record<Exclude<keyof I, "$type" | "diskTypeId" | "diskSize" | "resourcePresetId">, never>>(object: I): Resources;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare 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 Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare 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> | "$type">, never>;
export {};