type Color = 'light-grey'; type Size = 'small'; type SearchCombination = [Color, Size?] | [Size, Color?]; type InputSearchModifierConfig = { 'o-input-search': SearchCombination; }; export type InputSearchModifier = { [P in keyof InputSearchModifierConfig]: { prefix: P; modifiers: InputSearchModifierConfig[P]; }; }[keyof InputSearchModifierConfig]; export type ModifierItems = InputSearchModifier[] | SearchCombination;