import { Tree } from '@nx/devkit'; export interface SideMenuItemSpec { /** Nav label shown in the side menu, e.g. 'Review queue'. */ label: string; /** Route path the item navigates to, e.g. '/queue'. */ to: string; /** * Ionicon name, e.g. 'list'. Effectively required: goa-work-side-menu-item * renders a blank item when it has no icon, so a generator that omits this * produces nav that looks broken on arrival. Passed straight through to the * element's , so any valid ionicon name works. */ icon?: string; } /** * Appends a nav item to a generated app's side menu. * * Appends rather than prepends so the shell's own 'Home' entry stays first and * generated items accumulate in the order they were run. Inserting at the head * (an earlier version of this function) pushed Home to the bottom of the nav * after the first generator run, which no consuming app wants. * * A no-op when the app has no `primaryItems` array. That is the signal the app * was generated with `--layout=header` (a public app has no side menu at all), * so adding a staff view to it should not fail or warn -- there is simply no nav * to add to. * * Idempotent: re-running a generator, or two generators claiming the same path, * leaves one entry. */ export declare function insertSideMenuItem(host: Tree, projectRoot: string, item: SideMenuItemSpec): void;