import { SettingsSection } from './settings-sections'; /** * Configuración acotada de `val-settings-hub` (object-first). El HUB es la * portada de la sección Settings: un header (título + descripción) + un grid de * `val-action-card` que navega a las sub-vistas. * * Doble namespace i18n: * - `i18nNamespace` (default `'Dashboard'`) — labels de cada sección * (`general`, `account`, …). Es el set que comparten dashboard / hub. * - `pageI18nNamespace` (default `'Settings.Preferences'`) — `pageTitle` / * `pageDescription` del header del HUB. * * El catálogo de secciones es el default (`SETTINGS_SECTIONS_CATALOG`); se * filtra (`exclude`), reordena (`order`), extiende (`include`) o reescribe sus * rutas (`basePath`). `includeLogout` agrega la card de cierre de sesión (sin * ruta) — su click se delega a `onLogout`. */ export interface SettingsHubConfig { /** Oculta secciones por token (ej. la propia entrada del HUB). */ exclude?: string[]; /** Secciones extra a sumar al catálogo (las de la app aún no promovidas). */ include?: SettingsSection[]; /** Orden explícito por token. Las no listadas quedan al final. */ order?: string[]; /** Incluye la card de logout (sin ruta). Default `false`. */ includeLogout?: boolean; /** Reescribe el prefijo `/app/settings` de las rutas del catálogo. */ basePath?: string; /** Namespace i18n de los labels de sección. Default `'Dashboard'`. */ i18nNamespace?: string; /** Namespace i18n del header (pageTitle/pageDescription). Default `'Settings.Preferences'`. */ pageI18nNamespace?: string; /** Callback al click de la card de logout (sin ruta). */ onLogout?: () => void; /** Callback al click de cualquier card, con su token. */ onSectionClick?: (token: string) => void; }