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 `<section>` (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;
}
