export type Writable = { -readonly [P in keyof T]: T[P] } export type WritableArray = T extends readonly any[] ? Writable : T export type IfNever = [T] extends [never] ? Y : N export type IfUnknown = [unknown] extends [T] ? Y : N export type UnknownToNever = IfUnknown export {}