export const createDefinition = ( values: TKeys, options: TOptions, ) => ({ values, defaultValue: options?.defaultValue as TOptions extends { defaultValue: infer T; } ? T : undefined, }); export type inferDefinitionType = TDefinition extends { values: readonly (infer T)[]; } ? T : never;