type BackgroundColors = 'white' | 'light-grey'; type BorderColors = 'border-success' | 'border-danger'; type ModifierCombination = [BackgroundColors, BorderColors?] | [BorderColors, BackgroundColors?]; type TextareaModifierConfig = { 'o-textarea': ModifierCombination; 'o-label': ['required']; }; export type TextareaModifier = { [P in keyof TextareaModifierConfig]: { prefix: P; modifiers: TextareaModifierConfig[P]; }; }[keyof TextareaModifierConfig]; export type ModifierItems = TextareaModifier[]; export {};