export type DeepReadonly = { readonly [key in K]: Required[key] extends object ? DeepReadonly[key]> : T[key] }