/** * Configuración acotada de `val-security-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 visibles** — gatean el render de cada bloque (sesiones, * action-cards de cambiar contraseña / email / MFA, políticas legales). * - **branding** — `i18nNamespace` para resolver los textos (default * `'Settings.Security'`). * - **comportamiento / callbacks** — manejo de deep-links del email * (`?token`/`?action`/`?mfaCode`), ruta de "home" tras completar MFA y un * hook opcional `onMfaCompleted`. */ export interface SecurityViewConfig { /** Muestra la sección de sesiones activas. Default `true`. */ showSessions?: boolean; /** Incluye la action-card "Cambiar contraseña". Default `true`. */ showChangePassword?: boolean; /** Incluye la action-card "Cambiar email". Default `true`. */ showChangeEmail?: boolean; /** Incluye la action-card "Autenticación de dos pasos (MFA)". Default `true`. */ showMfa?: boolean; /** Muestra la sección de políticas legales relacionadas. Default `true`. */ showPolicies?: boolean; /** * Namespace i18n con el que la vista resuelve sus textos. * Default `'Settings.Security'`. */ i18nNamespace?: string; /** * Habilita el manejo de los deep-links del email * (`?token`/`?action`/`?mfaCode`). Default `true`. Requiere que la vista esté * montada como ruta (hay `ActivatedRoute`); en modo embebido sin ruta es no-op. */ handleDeepLinks?: boolean; /** * Ruta a la que navegar tras completar MFA vía deep-link. Default `'/app/home'`. * Ignorada si se provee `onMfaCompleted`. */ homeRoute?: string; /** * Hook invocado cuando el usuario completa MFA vía deep-link. Si se provee, se * llama **en lugar** de navegar a `homeRoute`. Útil para apps que quieran * decidir el destino post-MFA. */ onMfaCompleted?: () => void; }