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