declare namespace TSHelpers { type Prettify = { [K in keyof T]: T[K]; } & {} type DeepReadonly = T extends (...args: any[]) => any ? T : T extends [...any] | object ? { readonly [K in keyof T]: DeepReadonly } : T type ValueTypesOf = NonNullable // foo_bar_baz -> fooBarBaz type SnakeToCamelCase = S extends `${infer Head}_${infer Tail}` ? `${Head}${Capitalize>}` : S }