import { Organization } from '../../../services/org/types'; /** * Configuración acotada de `val-account-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 (invitaciones * pendientes, organizaciones, CTA de nueva org, cerrar sesión, eliminar cuenta). * - **branding** — `i18nNamespace` para resolver los textos (default * `'Settings.Account'`). * - **comportamiento / callbacks** — ruta de gestión de org (`manageOrgRoute`) y * hooks opcionales tras switch / create / logout / delete. */ export interface AccountViewConfig { /** Muestra la sección de invitaciones pendientes. Default `true`. */ showPendingInvites?: boolean; /** Muestra la sección de organizaciones (org activa + empty + CTA). Default `true`. */ showOrganizations?: boolean; /** Muestra la card CTA de "Nueva organización". Default `true`. */ showNewOrgCta?: boolean; /** Muestra la sección "Cerrar esta sesión". Default `true`. */ showLogout?: boolean; /** Muestra la sección "Eliminar cuenta". Default `true`. */ showDeleteAccount?: boolean; /** * Namespace i18n con el que la vista resuelve sus textos. * Default `'Settings.Account'`. */ i18nNamespace?: string; /** * Ruta a la que navegar al gestionar la org activa (botón "Gestionar"). * Default `'/app/settings/organization'`. */ manageOrgRoute?: string; /** Hook tras cambiar de organización vía el modal de switch. */ onOrgSwitched?: () => void; /** Hook tras crear una organización vía el modal de creación. */ onOrgCreated?: (newOrg: Organization) => void; /** Hook tras cerrar sesión. */ onLoggedOut?: () => void; /** Hook tras solicitar la eliminación de cuenta. */ onAccountDeleted?: () => void; }