UNPKG

vlibras-player-webjs

Version:

Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS

191 lines 4.39 kB
/** * Sistema de cache inteligente para VLibras Player * Implementa diferentes estratégias de cache e preload */ export interface CacheEntry<T = any> { key: string; data: T; timestamp: number; ttl: number; size: number; accessCount: number; lastAccess: number; } export interface CacheStrategy { type: 'memory' | 'localStorage' | 'indexedDB' | 'hybrid'; maxSize: number; ttl: number; compression: boolean; encryption?: boolean; maxEntries?: number; } export interface CacheStats { hits: number; misses: number; totalRequests: number; hitRate: number; currentSize: number; maxSize: number; entries: number; oldestEntry: number; newestEntry: number; } export interface PredictiveCacheConfig { enabled: boolean; relatedWordsLimit: number; commonWordsLimit: number; contextWords: Record<string, string[]>; } /** * Cache principal do VLibras */ export declare class VLibrasCache { private static instance; private strategy; private memoryCache; private stats; private constructor(); /** * Obtém instância singleton */ static getInstance(strategy?: CacheStrategy): VLibrasCache; /** * Configura estratégia de cache */ static configure(strategy: Partial<CacheStrategy>): void; /** * Armazena item no cache */ set<T>(key: string, data: T, customTtl?: number): Promise<void>; /** * Recupera item do cache */ get<T>(key: string): Promise<T | null>; /** * Remove item do cache */ delete(key: string): Promise<boolean>; /** * Limpa todo o cache */ clear(): Promise<void>; /** * Verifica se uma chave existe no cache */ has(key: string): Promise<boolean>; /** * Obtém estatísticas do cache */ getStats(): CacheStats; /** * Preload de palavras comuns */ preloadCommonWords(words: string[]): Promise<void>; /** * Cache preditivo - precarrega palavras relacionadas */ enablePredictiveCache(config: PredictiveCacheConfig): Promise<void>; /** * Cache por contexto */ preloadForContext(context: 'dictionary' | 'quiz' | 'tutorial'): Promise<void>; /** * Calcula tamanho de um objeto */ private calculateSize; /** * Verifica se entrada está expirada */ private isExpired; /** * Garante espaço disponível no cache */ private ensureSpace; /** * Armazena entrada baseado na estratégia */ private storeEntry; /** * Recupera entrada baseado na estratégia */ private retrieveEntry; /** * Remove entrada baseado na estratégia */ private deleteEntry; /** * Armazena no localStorage */ private storeInLocalStorage; /** * Recupera do localStorage */ private retrieveFromLocalStorage; /** * Remove do localStorage */ private deleteFromLocalStorage; /** * Armazena no IndexedDB */ private storeInIndexedDB; /** * Recupera do IndexedDB */ private retrieveFromIndexedDB; /** * Remove do IndexedDB */ private deleteFromIndexedDB; /** * Abre conexão com IndexedDB */ private openIndexedDB; /** * Limpa localStorage */ private clearLocalStorage; /** * Limpa IndexedDB */ private clearIndexedDB; /** * Comprime dados (implementação simples) */ private compress; /** * Descomprime dados */ private decompress; /** * Atualiza estatísticas gerais */ private updateStats; /** * Atualiza taxa de acerto */ private updateHitRate; /** * Reseta estatísticas */ private resetStats; } /** * Utilitários de cache */ export declare class VLibrasCacheUtils { /** * Cria chave de cache baseada em parâmetros */ static createKey(type: string, ...params: any[]): string; /** * Estima tamanho ideal de cache baseado no dispositivo */ static getOptimalCacheSize(): number; /** * Migra cache antigo para nova versão */ static migrateCache(oldVersion: string, newVersion: string): Promise<void>; } export declare const vlibrasCache: VLibrasCache; //# sourceMappingURL=VLibrasCache.d.ts.map