// Define TypeScript interfaces for menu structure
interface LanguageTranslation {
  tr: string;
  en: string;
}

interface MenuThirdLevel {
  name: string;
  lg: LanguageTranslation;
  siteUrl: string;
}

interface MenuSecondLevel {
  name: string;
  lg: LanguageTranslation;
  subList: MenuThirdLevel[];
}

interface MenuFirstLevel {
  name: string;
  lg: LanguageTranslation;
  subList: MenuSecondLevel[];
}

// Define interfaces for the filtered menu structure
interface FilteredMenuThirdLevel {
  name: string;
  lg: LanguageTranslation;
  siteUrl: string;
}

interface FilteredMenuSecondLevel {
  name: string;
  lg: LanguageTranslation;
  subList: FilteredMenuThirdLevel[];
}

interface FilteredMenuFirstLevel {
  name: string;
  lg: LanguageTranslation;
  subList: FilteredMenuSecondLevel[];
}

interface PageProps {
  lang: keyof LanguageTranslation;
  queryParams: { [key: string]: string | undefined };
}

type PageComponent = React.ComponentType<PageProps>;

export type {
  PageComponent,
  PageProps,
  MenuFirstLevel,
  MenuSecondLevel,
  MenuThirdLevel,
  FilteredMenuFirstLevel,
  FilteredMenuSecondLevel,
  FilteredMenuThirdLevel,
  LanguageTranslation,
};
