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;
}
