import { IMenuItem } from '../../components/widgets/MenuBar'; /** * A menu entry as held in the registry. Extends the presentational * {@link IMenuItem} with `commandId`, which `ConnectedMenuBar` resolves against * the {@link commandRegistry} when the item is chosen. */ export interface IMenuItemConfig extends IMenuItem { /** Command to execute when the item is selected. */ commandId?: string; /** Nested entries, which may themselves carry a `commandId`. */ submenu?: IMenuItemConfig[]; } /** * Holds the application's menu structure, keyed by top-level menu name. * * This is a shell-level convenience so plugins can contribute menu entries * without prop-drilling. The presentational `MenuBar` does not read it. */ export declare class MenuRegistry { private menus; registerMenu(menuId: string, item: IMenuItemConfig): void; setMenus(menuConfig: Record): void; getMenu(menuId: string): IMenuItemConfig[]; getAllMenus(): Record; } export declare const menuRegistry: MenuRegistry; export type { IMenuItem };