import type { ReactNode } from "react";

export interface SidebarItem {
  label: string;
  /** Omit for non-navigable group headers (e.g. Rule Engine categories). */
  href?: string;
  icon?: ReactNode;
  children?: SidebarItem[];
  /** Permission key(s) required to see this item; ANY grants access. */
  permission?: string | string[];
}

export interface SidebarSection {
  /** Section label shown above a group of nav items (e.g. "Main menu"). */
  title: string;
  items: SidebarItem[];
  /** When true, section title uses muted grey instead of dark text. */
  mutedTitle?: boolean;
}

export interface PageMeta {
  title: string;
  subtitle: string;
}
