import { PreferencesFontSize, PreferencesLanguage, PreferencesTheme } from '../../../services/preferences/preferences.types'; /** * Configuración acotada de `val-preferences-view` (object-first). Ejes * permitidos: * - **secciones visibles** — gatean el render de cada `
` (tema / * idioma). * - **data/branding** — `supportedLanguages` para el selector de idioma e * `i18nNamespace` para resolver los textos (default `'Settings.General'`). * El consumer puede registrar ese namespace para override de los defaults * embebidos. * - **callbacks** — hooks tras un cambio de tema / idioma exitoso (además del * efecto interno en `PreferencesService`). * * NO admite slots arbitrarios ni override del layout: la vista es full-feature * y autocontenida. */ export interface PreferencesViewConfig { /** Muestra la sección de tema (segment claro/oscuro/auto). Default `true`. */ showTheme?: boolean; /** Muestra la sección de idioma (language selector). Default `true`. */ showLanguage?: boolean; /** Muestra la sección de tamaño de fuente (segment pequeño/mediano/grande). Default `true`. */ showFontSize?: boolean; /** * Idiomas ofrecidos en el selector. Default `['es', 'en']`. */ supportedLanguages?: PreferencesLanguage[]; /** * Namespace i18n con el que la vista resuelve sus textos. * Default `'Settings.General'`. */ i18nNamespace?: string; /** Callback tras un cambio de tema exitoso. */ onThemeChanged?: (theme: PreferencesTheme) => void; /** Callback tras un cambio de idioma exitoso. */ onLanguageChanged?: (lang: PreferencesLanguage) => void; /** Callback tras un cambio de tamaño de fuente exitoso. */ onFontSizeChanged?: (fontSize: PreferencesFontSize) => void; }