UNPKG

vlibras-player-nextjs

Version:

VLibras Player para Next.js - Biblioteca moderna para tradução de texto em Libras com callbacks de estado

143 lines (142 loc) 4.33 kB
import type { VLibrasPlayerOptions, VLibrasPlayerCallbacks, TranslationOptions } from '../types'; import { VLibrasPlayer } from '../core/vlibras-player'; interface VLibrasPlayerState { status: 'idle' | 'initializing' | 'ready' | 'translating' | 'playing' | 'paused' | 'error'; isLoading: boolean; isReady: boolean; isTranslating: boolean; isPlaying: boolean; isPaused: boolean; progress: number | null; region: 'BR' | 'PT'; currentText?: string; currentGloss?: string; errors: { fatal: string | null; warnings: string[]; }; lastTranslation?: { text: string; timestamp: number; }; } interface UseVLibrasPlayerOptions extends Omit<VLibrasPlayerOptions, keyof VLibrasPlayerCallbacks> { containerRef?: { current: HTMLElement | null; }; autoInit?: boolean; onStateChange?: (state: VLibrasPlayerState) => void; onPlayerReady?: () => void; onLoad?: () => void; onPlayerError?: (error: string, isFatal: boolean) => void; onTranslationStart?: () => void; onTranslationEnd?: () => void; onTranslationError?: (error: string) => void; onPlay?: () => void; onPlaybackStart?: () => void; onPlaybackEnd?: () => void; onPause?: () => void; onPlaybackPause?: () => void; onResume?: () => void; onPlaybackResume?: () => void; onRestart?: () => void; onPlaybackRestart?: () => void; onStop?: () => void; retryOnError?: boolean; maxRetries?: number; debounceMs?: number; } /** * Hook React para VLibras Player com melhores práticas * * @example * ```tsx * const containerRef = useRef<HTMLDivElement>(null); * const player = useVLibrasPlayer({ * containerRef, * autoInit: true, * onPlayerReady: () => console.log('Player pronto!'), * onStateChange: (state) => console.log('Estado:', state.status) * }); * * // Usar o player * await player.translate('Olá mundo'); * ``` */ export declare function useVLibrasPlayer(options?: UseVLibrasPlayerOptions): { translate: (text: string, translationOptions?: TranslationOptions) => Promise<void>; initializePlayer: () => Promise<void>; controls: { play: (gloss?: string | null, options?: TranslationOptions) => void; pause: () => void; resume: () => void; stop: () => void; restart: () => void; repeat: () => void; }; settings: { setSpeed: (speed: number) => void; setRegion: (region: "BR" | "PT") => void; changeAvatar: (avatarName: string) => void; toggleSubtitle: () => void; playWelcome: () => void; }; utils: { clearWarnings: () => void; reset: () => void; getPlayer: () => VLibrasPlayer | null; retry: () => Promise<void>; }; play: (gloss?: string | null, options?: TranslationOptions) => void; pause: () => void; resume: () => void; stop: () => void; restart: () => void; repeat: () => void; setSpeed: (speed: number) => void; setRegion: (region: "BR" | "PT") => void; changeAvatar: (avatarName: string) => void; toggleSubtitle: () => void; playWelcome: () => void; player: { status: "idle" | "playing" | "translating" | "error" | "initializing" | "ready" | "paused"; loaded: boolean; translated: boolean; progress: number | null; region: "BR" | "PT"; isTranslating: boolean; isPlaying: boolean; text: string | undefined; gloss: string | undefined; }; error: string | null; isLoading: boolean; isReady: boolean; isTranslating: boolean; isPlaying: boolean; canTranslate: boolean; canPause: boolean; canResume: boolean; canStop: boolean; canRestart: boolean | { text: string; timestamp: number; } | undefined; hasWarnings: boolean; isBusy: boolean; status: "idle" | "initializing" | "ready" | "translating" | "playing" | "paused" | "error"; isPaused: boolean; progress: number | null; region: "BR" | "PT"; currentText?: string; currentGloss?: string; errors: { fatal: string | null; warnings: string[]; }; lastTranslation?: { text: string; timestamp: number; }; }; export {};