import { LinksAccordionSection } from '../components/molecules/links-accordion/types'; /** * Menú lateral del factory. * * Trae el menú funcionando entero: orden, íconos, rutas y claves i18n. Una app * normal no declara nada — llama a {@link buildPlatformMenu} y lista. * * Antes esto vivía copiado en cada app (`shared/menu-core.ts`), incluido el * rewriting de rutas duales, así que "Centro de ayuda" podía terminar en * distinto lugar y con distinto nombre según la app. La auditoría encontró * cinco de siete secciones con textos divergentes. * * Lo que la lib fija es la ESTRUCTURA. El texto viaja como default en * {@link VALTECH_MENU_I18N} y la app lo pisa cuando tiene motivo (Chessimals * dice "Jugar" y no "Inicio": es un juego, y unificarlo sería empeorarlo). */ /** Claves de las secciones que aporta la plataforma. */ export type PlatformMenuKey = 'menuHome' | 'menuPreferences' | 'menuHelp' | 'menuFaq' | 'menuFeedback' | 'menuAbout' | 'menuLogin'; /** Personalización por sección. Se aplica sobre el default de la plataforma. */ export type PlatformMenuOverrides = Partial | null>>; export interface BuildPlatformMenuOptions { /** Secciones propias del dominio, intercaladas entre los dos bloques. */ appSections?: LinksAccordionSection[]; /** Sin sesión se sirve el menú público. */ authenticated?: boolean; /** * Ajustes por sección. `null` la quita (una app sin FAQ propia, por ejemplo); * un objeto parcial pisa solo los campos dados. */ overrides?: PlatformMenuOverrides; } /** * Arma el menú lateral completo. * * @example * // Una app sin secciones propias: * sections: buildPlatformMenu({ authenticated: auth.isAuthenticated() }) */ export declare function buildPlatformMenu(options?: BuildPlatformMenuOptions): LinksAccordionSection[]; /** * Textos por defecto del menú (namespace `Menu`). * * La app los esparce y pisa lo que quiera: * * @example * Menu: { * es: { ...VALTECH_MENU_I18N.es, menuHome: 'Jugar' }, * en: { ...VALTECH_MENU_I18N.en, menuHome: 'Play' }, * } */ export declare const VALTECH_MENU_I18N: { es: { menuHome: string; menuPreferences: string; menuHelp: string; menuFaq: string; menuFeedback: string; menuAbout: string; menuLogin: string; }; en: { menuHome: string; menuPreferences: string; menuHelp: string; menuFaq: string; menuFeedback: string; menuAbout: string; menuLogin: string; }; };