interface IconItem { name?: string avatarId?: number | null avatarByDefault?: string } export const enum MENU_LINK_TYPE { INTERNAL = 1, V1 = 2, EXTERNAL = 3, } interface MenuItem { label: string icon?: IconItem to?: string type: MENU_LINK_TYPE active: boolean isAction: boolean avatar?: number } interface MenuGroup { label: string icon?: IconItem children?: MenuItems active: boolean } type MenuItems = Array interface MenuBuilder { build: () => MenuItem | MenuGroup | null }