/**
 * Preferences types — Fase 1 schema simple (theme + language + notifications.master).
 * Doc canónico: /apps/{appId}/users/{uid}/preferences/main
 * Cliente NUNCA escribe directo — todas las mutaciones via PUT /v2/auth/preferences.
 */
export type PreferencesTheme = 'light' | 'dark' | 'auto';
export type PreferencesLanguage = 'es' | 'en';
export type PreferencesFontSize = 'small' | 'medium' | 'large';
/** Forma del doc tal como lo escribe el backend (Admin SDK). */
export interface PreferencesDocument {
    theme?: PreferencesTheme;
    language?: PreferencesLanguage;
    fontSize?: PreferencesFontSize;
    notifications?: {
        master?: boolean;
    };
    /** serverTimestamp escrito por el backend en cada sync. */
    syncedAt?: unknown;
}
/** Payload aceptado por `PUT /v2/auth/preferences` — partial update. */
export interface PreferencesUpdate {
    theme?: PreferencesTheme;
    language?: PreferencesLanguage;
    fontSize?: PreferencesFontSize;
    notifications?: {
        master?: boolean;
    };
}
/** Response del backend tras el PUT. */
export interface PreferencesUpdateResponse {
    operationId: string;
    theme: PreferencesTheme | '';
    language: PreferencesLanguage | '';
    fontSize: PreferencesFontSize | '';
    notifications: {
        master?: boolean;
    };
    updated: boolean;
}
