import { LanguageSelectorMetadata } from '../../molecules/language-selector/types';
import { PopoverSelectorMetadata } from '../../molecules/popover-selector/types';
import { PreferencesService } from '../../../services/preferences/preferences.service';
import { PreferencesViewConfig } from './types';
import * as i0 from "@angular/core";
/**
 * `val-preferences-view` — vista de preferencias de UI cross-app (tema +
 * idioma) full-feature autocontenida (organism). Promovida desde `showcase`
 * bajo el proceso de ADR-021.
 *
 * Backend integration 100% en `PreferencesService`:
 *  - Read: listener Firestore reactivo (`prefs.theme()` / `prefs.language()`).
 *  - Write: `PUT /v2/auth/preferences` (`prefs.setTheme` / `prefs.setLanguage`).
 *    El cliente NUNCA escribe Firestore directo.
 *
 * NO renderiza ion-content — vive dentro de val-page-wrapper.
 *
 * Auto-registra sus defaults i18n (es/en) en el constructor si el consumer no
 * proveyó el namespace configurado (default `Settings.General`).
 */
export declare class PreferencesViewComponent {
    private nav;
    protected prefs: PreferencesService;
    private i18n;
    private errors;
    private route;
    /**
     * Config vía @Input (object-first). Si no se pasa, se cae al route data
     * `preferencesConfig` (poblado por `provideValtechPreferencesRoutes`).
     * `resolvedConfig` mergea con los defaults.
     */
    config?: PreferencesViewConfig;
    /** Config mergeada con defaults. @Input gana sobre route data. */
    readonly resolvedConfig: import("@angular/core").Signal<Required<Omit<PreferencesViewConfig, "onThemeChanged" | "onLanguageChanged" | "onFontSizeChanged">> & Pick<PreferencesViewConfig, "onThemeChanged" | "onLanguageChanged" | "onFontSizeChanged">>;
    /** Namespace i18n resuelto (capturado para llamadas no-reactivas). */
    private get ns();
    readonly saving: import("@angular/core").WritableSignal<boolean>;
    readonly pageTitle: import("@angular/core").Signal<string>;
    readonly pageDescription: import("@angular/core").Signal<string>;
    readonly themeTitle: import("@angular/core").Signal<string>;
    readonly themeHint: import("@angular/core").Signal<string>;
    readonly langTitle: import("@angular/core").Signal<string>;
    readonly langHint: import("@angular/core").Signal<string>;
    readonly fontSizeTitle: import("@angular/core").Signal<string>;
    readonly fontSizeHint: import("@angular/core").Signal<string>;
    readonly langProps: import("@angular/core").Signal<Partial<LanguageSelectorMetadata>>;
    readonly themePickerProps: import("@angular/core").Signal<PopoverSelectorMetadata>;
    readonly fontSizePickerProps: import("@angular/core").Signal<PopoverSelectorMetadata>;
    constructor();
    onThemeChange(value: string | string[]): Promise<void>;
    onFontSizeChange(value: string | string[]): Promise<void>;
    onLanguageChange(value: string): Promise<void>;
    private dispatch;
    /** Lee del namespace configurado. */
    protected t(key: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<PreferencesViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PreferencesViewComponent, "val-preferences-view", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
}
