export type NumberKeys = { [K in keyof O]: number extends O[K] ? K : never }[keyof O]; export type ArrayKeys = { [K in keyof O]: P[] extends O[K] ? K : never }[keyof O] export type Value = { [K in keyof O]: V }