/**
 * Idiomas soportados por el sistema i18n
 */
export type I18nLang = 'es' | 'en' | 'fr' | 'de';
/**
 * Contenido de traducciones para un namespace
 *
 * @example
 * const loginContent: LanguagesContent = {
 *   es: { title: 'Iniciar sesión', submit: 'Entrar' },
 *   en: { title: 'Sign in', submit: 'Sign in' }
 * };
 */
export type LanguagesContent = {
    [lang in I18nLang]?: Record<string, string>;
};
/**
 * Almacén de contenido por namespace
 *
 * @example
 * {
 *   '_global': { es: {...}, en: {...} },
 *   'Login': { es: {...}, en: {...} },
 *   'Profile': { es: {...}, en: {...} }
 * }
 */
export type ContentStore = Record<string, LanguagesContent>;
/**
 * Configuración para provideValtechI18n()
 */
export interface I18nConfig {
    /**
     * Idioma por defecto si no hay preferencia guardada
     * @default 'es'
     */
    defaultLanguage?: I18nLang;
    /**
     * Lista de idiomas habilitados en la app
     * @default ['es', 'en']
     */
    supportedLanguages?: I18nLang[];
    /**
     * Detectar idioma del navegador al iniciar
     * @default true
     */
    detectBrowserLanguage?: boolean;
    /**
     * Contenido inicial de traducciones por namespace.
     * Si includeDefaultContent es true, este contenido se mergea
     * con VALTECH_DEFAULT_CONTENT (las keys del usuario ganan).
     */
    content?: ContentStore;
    /**
     * Si es true, incluye traducciones por defecto de valtech-components.
     * Las traducciones del usuario sobrescriben las por defecto.
     *
     * @default true
     *
     * @example Usar defaults (comportamiento por defecto)
     * ```typescript
     * provideValtechI18n() // Funciona sin configuración
     * ```
     *
     * @example Sobrescribir keys específicas
     * ```typescript
     * provideValtechI18n({
     *   content: {
     *     _global: {
     *       es: { success: '¡Lo hicimos!' },
     *       en: { success: 'We did it!' },
     *     },
     *   },
     * })
     * ```
     *
     * @example Desactivar defaults completamente
     * ```typescript
     * provideValtechI18n({
     *   includeDefaultContent: false,
     *   content: MY_CUSTOM_CONTENT,
     * })
     * ```
     */
    includeDefaultContent?: boolean;
}
/**
 * Valores por defecto de configuración
 */
export declare const DEFAULT_I18N_CONFIG: Required<I18nConfig>;
/**
 * Clave para persistir idioma en localStorage
 */
export declare const LANG_STORAGE_KEY = "app_lang";
