export type DeepPartial = T extends (...args: any[]) => any ? T : { [K in keyof T]?: T[K] extends (...args: any[]) => any ? T[K] : T[K] extends Record ? DeepPartial : T[K] extends Record | null | undefined ? DeepPartial | null | undefined : T[K] }