UNPKG

vlibras-player-webjs

Version:

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

160 lines 4.17 kB
/** * Sistema de eventos padronizado e type-safe para VLibras Player * Fornece eventos detalhados sobre o ciclo de vida do player */ export interface PlayerEvents { 'player:ready': { player: any; timestamp: number; }; 'player:error': { error: Error; player: any; timestamp: number; }; 'player:destroy': { player: any; timestamp: number; }; 'translation:start': { text: string; timestamp: number; }; 'translation:progress': { progress: number; stage: string; timestamp: number; }; 'translation:complete': { gloss: string; duration: number; timestamp: number; }; 'translation:error': { error: string; text: string; timestamp: number; }; 'animation:start': { gloss: string; timestamp: number; }; 'animation:progress': { progress: number; currentFrame: number; timestamp: number; }; 'animation:pause': { timestamp: number; }; 'animation:resume': { timestamp: number; }; 'animation:complete': { duration: number; totalFrames: number; timestamp: number; }; 'animation:error': { error: string; timestamp: number; }; 'cache:hit': { key: string; size: number; timestamp: number; }; 'cache:miss': { key: string; timestamp: number; }; 'cache:clear': { timestamp: number; }; 'performance:slow': { operation: string; duration: number; threshold: number; timestamp: number; }; 'performance:memory': { usage: number; limit: number; timestamp: number; }; 'performance:fps': { fps: number; timestamp: number; }; 'diagnostic:webgl': { supported: boolean; version: string; timestamp: number; }; 'diagnostic:assets': { loaded: boolean; size: number; version: string; timestamp: number; }; 'diagnostic:compatibility': { browser: string; version: string; supported: boolean; timestamp: number; }; } /** * Event Emitter type-safe para VLibras */ export declare class VLibrasEventEmitter { private listeners; private onceListeners; /** * Adiciona um listener para um evento específico */ on<K extends keyof PlayerEvents>(event: K, listener: (data: PlayerEvents[K]) => void): () => void; /** * Adiciona um listener que será executado apenas uma vez */ once<K extends keyof PlayerEvents>(event: K, listener: (data: PlayerEvents[K]) => void): () => void; /** * Remove um listener específico */ off<K extends keyof PlayerEvents>(event: K, listener: (data: PlayerEvents[K]) => void): void; /** * Emite um evento para todos os listeners */ emit<K extends keyof PlayerEvents>(event: K, data: PlayerEvents[K]): void; /** * Remove todos os listeners de um evento ou de todos os eventos */ removeAllListeners(event?: keyof PlayerEvents): void; /** * Retorna o número de listeners para um evento */ listenerCount(event: keyof PlayerEvents): number; /** * Retorna todos os eventos que têm listeners */ eventNames(): Array<keyof PlayerEvents>; } /** * Utilitários para eventos */ export declare class VLibrasEventUtils { /** * Cria um timestamp padronizado */ static createTimestamp(): number; /** * Aguarda por um evento específico */ static waitForEvent<K extends keyof PlayerEvents>(emitter: VLibrasEventEmitter, event: K, timeout?: number): Promise<PlayerEvents[K]>; /** * Debounce para eventos frequentes */ static debounceEvent<K extends keyof PlayerEvents>(emitter: VLibrasEventEmitter, event: K, callback: (data: PlayerEvents[K]) => void, delay?: number): () => void; } export declare const globalEventEmitter: VLibrasEventEmitter; //# sourceMappingURL=VLibrasEvents.d.ts.map