/**
 * Sistema de configuração global para VLibras Player
 * Permite configurar uma vez e usar em toda a aplicação
 */
import { PlayerConfig } from '../../types/core.types';
export interface GlobalConfig {
    assetsPath: string;
    defaultRegion: 'BR' | 'PE' | 'RJ' | 'SP';
    theme: 'light' | 'dark' | 'auto' | 'high-contrast';
    language: 'pt-BR' | 'en-US';
    enableStats: boolean;
    debug: boolean;
    autoRetry: boolean;
    retryAttempts: number;
    performance: {
        preloadAssets: boolean;
        cacheEnabled: boolean;
        maxCacheSize: number;
        enableGPUAcceleration: boolean;
        lowLatencyMode: boolean;
    };
    analytics: {
        enabled: boolean;
        endpoint?: string;
        anonymizeData: boolean;
        respectDoNotTrack: boolean;
        trackingId?: string;
    };
    accessibility: {
        announceStateChanges: boolean;
        keyboardNavigation: boolean;
        reduceMotion: boolean;
        highContrastMode: boolean;
        screenReaderSupport: boolean;
    };
    experimental: {
        enableWorkers: boolean;
        enableOfflineMode: boolean;
        enablePredictiveCache: boolean;
        enableAutoScale: boolean;
    };
}
/**
 * Classe principal de configuração global
 */
export declare class VLibrasGlobalConfig {
    private static config;
    private static listeners;
    private static isInitialized;
    /**
     * Configura o VLibras globalmente
     */
    static configure(newConfig: Partial<GlobalConfig>): void;
    /**
     * Obtém a configuração atual
     */
    static getConfig(): GlobalConfig;
    /**
     * Obtém uma configuração específica
     */
    static get<K extends keyof GlobalConfig>(key: K): GlobalConfig[K];
    /**
     * Define uma configuração específica
     */
    static set<K extends keyof GlobalConfig>(key: K, value: GlobalConfig[K]): void;
    /**
     * Reseta para configuração padrão
     */
    static reset(): void;
    /**
     * Carrega configuração do localStorage
     */
    static loadFromStorage(): boolean;
    /**
     * Salva configuração no localStorage
     */
    static saveToStorage(): void;
    /**
     * Adiciona listener para mudanças de configuração
     */
    static onChange(listener: (config: GlobalConfig) => void): () => void;
    /**
     * Verifica se foi inicializado
     */
    static isConfigured(): boolean;
    /**
     * Cria configuração de player com base na global
     */
    static createPlayerConfig(overrides?: Partial<PlayerConfig>): PlayerConfig;
    /**
     * Obtém configurações por ambiente
     */
    static getEnvironmentConfig(): Partial<GlobalConfig>;
    /**
     * Auto-configura baseado no ambiente
     */
    static autoConfigureForEnvironment(): void;
    /**
     * Valida configuração
     */
    static validateConfig(config: Partial<GlobalConfig>): {
        valid: boolean;
        errors: string[];
    };
    /**
     * Aplica configurações automaticamente
     */
    private static applyConfiguration;
    /**
     * Aplica tema
     */
    private static applyTheme;
    /**
     * Aplica configurações de acessibilidade
     */
    private static applyAccessibilitySettings;
    /**
     * Aplica configurações de performance
     */
    private static applyPerformanceSettings;
    /**
     * Notifica todos os listeners
     */
    private static notifyListeners;
    /**
     * Merge profundo de objetos
     */
    private static deepMerge;
    /**
     * Verifica se é objeto
     */
    private static isObject;
    /**
     * Obtém diferenças entre configurações
     */
    private static getChanges;
}
/**
 * Classe de utilitários para configuração
 */
export declare class VLibrasConfigUtils {
    /**
     * Cria configuração otimizada para mobile
     */
    static getMobileConfig(): Partial<GlobalConfig>;
    /**
     * Cria configuração otimizada para desktop
     */
    static getDesktopConfig(): Partial<GlobalConfig>;
    /**
     * Detecta configuração ideal baseada no dispositivo
     */
    static detectOptimalConfig(): Partial<GlobalConfig>;
    /**
     * Aplica configuração ideal automaticamente
     */
    static applyOptimalConfig(): void;
}
//# sourceMappingURL=VLibrasGlobalConfig.d.ts.map