export type DeepPartial = T extends Primitive ? Partial : T extends Array ? T : T extends Set ? T : T extends ReadonlySet ? T : T extends Map ? T : T extends ReadonlyMap ? T : T extends Date ? Date : T extends (...args: any[]) => unknown ? T | undefined : T extends object ? DeepPartialObject : unknown; type Primitive = null | undefined | string | number | boolean | symbol | bigint; export type DeepPartialObject = { [KeyType in keyof ObjectType]?: DeepPartial; }; export {};