/** * A deeply readonly type. * @template T - The type to make deeply readonly. * @returns The deeply readonly type. */ export type DeeplyReadonly = { readonly [K in keyof T]: T[K] extends (...args: never[]) => unknown ? T[K] : DeeplyReadonly; };