interface BaseMenuItem { text: string; dangerous?: boolean; } interface ActionMenuItem extends BaseMenuItem { action: () => void; } interface LinkMenuItem extends BaseMenuItem { to: string; } interface ExternalLinkMenuItem extends BaseMenuItem { href: string; } export type MenuItem = | ActionMenuItem | LinkMenuItem | ExternalLinkMenuItem | null; export type DropdownMenu = MenuItem[];