type Colors = 'white' | 'black' | 'primary' | 'secondary' | 'light-grey' | 'yellow' | 'blue' | 'red' | 'red-25' | 'green' | 'green-50' | 'green-75' | 'ghost'; type ArrowDirection = 'back' | 'forward-icon' | 'forward-icon-24'; type Size = 'small' | 'medium' | 'large'; type Modifiers = 'no-wrap' | 'setWidth-16' | 'bounce'; type ModifierCombination = [Colors, ArrowDirection?, Size?, Modifiers?] | [Colors, ArrowDirection?, Modifiers?, Size?] | [Colors, Size?, ArrowDirection?, Modifiers?] | [Colors, Modifiers?, ArrowDirection?, Size?] | [ArrowDirection, Colors?, Size?, Modifiers?] | [ArrowDirection, Size?, Colors?, Modifiers?] | [ArrowDirection, Modifiers?, Colors?, Size?] | [Size, Colors?, ArrowDirection?, Modifiers?] | [Size, ArrowDirection?, Colors?, Modifiers?] | [Size, Modifiers?, Colors?, ArrowDirection?] | [Modifiers, Colors?, ArrowDirection?, Size?] | [Modifiers, Size?, Colors?, ArrowDirection?]; type ButtonModifierConfig = { 'o-button': ModifierCombination; }; export type ButtonModifier = { [P in keyof ButtonModifierConfig]: { prefix: P; modifiers: ButtonModifierConfig[P]; }; }[keyof ButtonModifierConfig]; export type ModifierItems = ButtonModifier[] | ModifierCombination; export {};