export type Paths = [D] extends [never] ? never : T extends { [key: string]: unknown } ? { [K in keyof T]-?: K extends string | number ? `${K}` | Join> : never }[keyof T] : '' export type Join = K extends string | number ? P extends string ? `${K}${'' extends P ? '' : '.'}${P}` : never : never export type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...Array<0>] export type Leaves = [D] extends [never] ? never : T extends { [key: string]: unknown } ? { [K in keyof T]-?: Join> }[keyof T] : ''