type Display = 'fixed' | 'absolute'; type modifiers = 'medium' | 'hide' | 'fullscreen'; type ModifierCombination = [modifiers, Display?] | [Display, modifiers?]; type LoaderModifierConfig = { 'o-loader': ModifierCombination; }; export type LoaderModifier = { [P in keyof LoaderModifierConfig]: { prefix: P; modifiers: LoaderModifierConfig[P]; }; }[keyof LoaderModifierConfig]; export type ModifierItems = LoaderModifier[] | ModifierCombination;