export type ValueOf = T[keyof T]; type Join = K extends string | number ? P extends string | number ? `${K}${'' extends P ? '' : '.'}${P}` : never : never; export type Leaves = [10] extends [never] ? never : T extends object ? { [K in keyof T]-?: Join>; }[keyof T] : ''; export {};