export type DeepRequired = T extends object ? { [P in keyof T]-?: DeepRequired; } : T;