Type alias KeyToScreamingSnakeCaseKey<T, ValueDelimiter>
KeyToScreamingSnakeCaseKey<T, ValueDelimiter>: T extends object
? {
[Key in keyof T]: Key extends string
? Join<Split<ScreamingSnakeCase<Key>, "."> extends string[]
? Split<ScreamingSnakeCase<Key>, ".">
: never, ValueDelimiter extends string
? ValueDelimiter
: never>
: never
}
: never