export interface NavigationLocalizedText {
  [locale: string]: string;
}

export interface NavigationItemConfig {
  id: string;
  labelKey?: string;
  label?: string | NavigationLocalizedText;
  route?: string;
  type?: string;
  key?: string;
  icon?: string;
  order?: number;
  visible?: boolean;
  visibleWhenFlags?: string[];
  children?: NavigationItemConfig[];
}

export interface FooterNavigationItemConfig {
  type: string;
  key?: string;
  label?: string | NavigationLocalizedText;
  labelKey?: string;
  route?: string;
  visible?: boolean;
}

export interface FooterNavigationGroupConfig {
  groupTitle?: string | NavigationLocalizedText;
  items: FooterNavigationItemConfig[];
}

export interface NavigationConfig {
  header: NavigationItemConfig[];
  footer: NavigationItemConfig[] | FooterNavigationGroupConfig[];
  sidebar?: NavigationItemConfig[];
}
