import type { MenuProps as RcMenuProps } from '@rc-component/menu'; type RcItemType = NonNullable[number]>; type RcMenuDividerType = Extract; type RcMenuItemGroupType = Extract; type RcMenuItemType = Extract; type RcSubMenuType = Extract; export type DataAttributes = { [Key in `data-${string}`]: unknown; }; export interface MenuItemType extends RcMenuItemType, DataAttributes { danger?: boolean; icon?: React.ReactNode; title?: string; } export interface SubMenuType extends Omit { icon?: React.ReactNode; theme?: 'dark' | 'light'; children: ItemType[]; } export interface MenuItemGroupType extends Omit { children?: ItemType[]; key?: React.Key; } export interface MenuDividerType extends RcMenuDividerType { dashed?: boolean; key?: React.Key; } export type ItemType = T | SubMenuType | MenuItemGroupType | MenuDividerType | null; export {};