import type { Locale } from '../../intl'; import type { Header } from '../Header'; import type { ComponentProps, ComponentType, MouseEvent, ReactElement, ReactNode } from 'react'; export type LocaleProps = { onSelectLocale: (locale: Locale) => void; }; export type UserInfoProps = { email?: string | null; empCode?: string | null; firstName?: string | null; lastName?: string | null; accountUrl?: string | null; accountImageUrl?: string; enableNew?: boolean; }; export type HeaderProps = ComponentProps & { locale?: LocaleProps | null; enableNew?: boolean; appName?: ReactNode; schoolUrl?: string | null; helpPageUrl?: string | null; userInfo?: UserInfoProps | null; desktopAdditionalContent?: ReactNode; navigations?: Navigation[] | null; desktopNavigationAdditionalContent?: ReactNode; releaseNote?: ReleaseNoteProps | null; features?: Array; mobileAdditionalContent?: ReactNode; }; export type Navigation = NavigationLink | NavigationCustomTag | NavigationButton | NavigationGroup; export type NavigationLink = { children: ReactElement | string; href: string; current?: boolean; }; export type NavigationCustomTag = { children: ReactElement | string; elementAs: ComponentType; current?: boolean; } & { [key: string]: any; }; export type NavigationButton = { children: ReactElement | string; onClick: (e: MouseEvent) => void; current?: boolean; }; export type NavigationGroup = { children: ReactElement | string; childNavigations: Array; current?: boolean; }; export type ChildNavigationGroup = { title: ReactElement | string; childNavigations: ChildNavigation[]; }; export type ChildNavigation = NavigationLink | NavigationCustomTag | NavigationButton; export type ReleaseNoteProps = { indexUrl: string; links: Array<{ title: string; url: string; }>; loading?: boolean | null; error?: boolean | null; }; declare const launcher: { readonly pages: readonly ["favorite", "all"]; readonly modes: readonly ["default", "search"]; readonly sortTypes: readonly ["default", "name/asc", "name/desc"]; }; export type Launcher = { feature: { id: string; name: string; url: string; favorite: boolean; position?: number | null; }; page: (typeof launcher)['pages'][number]; mode: (typeof launcher)['modes'][number]; sortType: (typeof launcher)['sortTypes'][number]; }; export {};