/** * Configuración acotada de `val-notification-preferences-view` (object-first). * Tres ejes de variación permitidos — **NADA de slots arbitrarios** (ADR-021: * una vista full-feature no abre slots; si falta algo, se promueve un nuevo * punto de extensión): * * - **secciones / flags** — gatean el render de bloques opcionales (panel de * detalles técnicos expandible). * - **branding** — `i18nNamespace` para resolver los textos (default * `'Settings.Notifications'`). * - **comportamiento / callbacks** — `onPushEnabled` / `onPushDisabled` * (telemetría tras activar/desactivar push). */ export interface NotificationPreferencesViewConfig { /** * Muestra el panel "Ver detalles técnicos" (token FCM, permiso del navegador, * soporte). Se oculta de todos modos en los estados `unsupported` y * `needs-install`. Default `true`. */ showDetails?: boolean; /** * Namespace i18n con el que la vista resuelve sus textos. * Default `'Settings.Notifications'`. */ i18nNamespace?: string; /** * Hook de telemetría tras activar push correctamente (permiso concedido + * token registrado + master en `true`). */ onPushEnabled?: () => void; /** * Hook de telemetría tras desactivar push (device desregistrado + master en * `false`). */ onPushDisabled?: () => void; }