type Colors = 'light-grey' | 'white'; type BorderColors = 'border-success' | 'border-danger'; type Size = 'small'; type ModifierCombination = [Colors, BorderColors?, Size?] | [BorderColors, Colors?, Size?] | [Size, Colors?, BorderColors?] | [Colors, Size, BorderColors?] | [BorderColors, Size, Colors?] | [Size, BorderColors, Colors?]; type InputTextModifierConfig = { 'o-input-field': ModifierCombination; 'o-label': ['required']; }; export type InputTextModifier = { [P in keyof InputTextModifierConfig]: { prefix: P; modifiers: InputTextModifierConfig[P]; }; }[keyof InputTextModifierConfig]; export type ModifierItems = InputTextModifier[]; export {};