export type Simplify = { [KeyType in keyof T]: T[KeyType]; } & {}; export type WithRequired = T & { [P in K]-?: T[P]; }; export type OmitIndexSignature = { [KeyType in keyof ObjectType as {} extends Record ? never : KeyType]: ObjectType[KeyType]; }; export type Kebab = T extends `${infer F}${infer R}` ? Kebab ? '' : '-'}${Lowercase}`> : A; export type KebabKeys = { [K in keyof T as K extends string ? Kebab : K]: T[K]; }; export type ValueOf = T[keyof T]; export type MapValue = T extends Map ? V : never; export type DeepPartial = { [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial[] : T[P] extends object | undefined ? DeepPartial : T[P]; };