import { ReactNode } from 'react'; /** * Navigation Item Interface */ export interface NavItem { /** Unique identifier */ id: string; /** Display label */ label: string; /** Navigation path */ path: string; /** Icon (ReactNode or SVG path) */ icon?: ReactNode; /** Badge count */ badge?: number; /** Item order */ order?: number; /** Group identifier */ group?: string; /** Visibility flag */ visible?: boolean; /** Nested children items */ children?: NavItem[]; /** Match only this exact path instead of nested descendants. */ exact?: boolean; /** * When sidebar is collapsed and this parent item is clicked, * navigate to this path instead of the parent's path. * If not specified, defaults to the first child's path (if children exist). */ homePath?: string; /** * RBAC permission(s) required to see this item ("resource:action" form). * An array means ANY match shows the item. Mirrors the registry NavItem * field (see shared/hooks/shell/useNavRegistry.ts). */ requiredPermission?: string | string[]; } //# sourceMappingURL=types.d.ts.map