vlibras-player-nextjs
Version:
VLibras Player para Next.js - Biblioteca moderna para tradução de texto em Libras com callbacks de estado
63 lines (62 loc) • 2.02 kB
TypeScript
import type { UnityDebugInfo } from '../types';
/**
* Utilitário para gerenciamento de estado do Unity WebGL
* Resolve problemas de detecção de carregamento e estado de animação
*/
export interface UnityInstance {
Module?: {
ready?: boolean;
canvas?: HTMLCanvasElement;
isAnimationPlaying?: () => boolean;
isAnimationComplete?: () => boolean;
};
SendMessage?: (gameObject: string, methodName: string, value?: any) => void;
}
declare global {
interface Window {
unityInstance?: UnityInstance;
unityInstances?: Map<string, UnityInstance>;
}
}
export declare class UnityStateManager {
/**
* Verifica se o Unity WebGL carregou completamente
*/
static isUnityReady(container: HTMLElement): boolean;
/**
* Verifica se uma animação está sendo reproduzida
*/
static isAnimationPlaying(container?: HTMLElement): boolean;
/**
* Verifica se uma animação foi completada
*/
static isAnimationComplete(container?: HTMLElement): boolean;
/**
* Aguarda o Unity estar completamente carregado
*/
static waitForUnity(container: HTMLElement, timeout?: number): Promise<void>;
/**
* Aguarda uma animação terminar completamente
*/
static waitForAnimationEnd(container?: HTMLElement, timeout?: number): Promise<void>;
/**
* Obtém a instância do Unity para um container específico
*/
private static getUnityInstance;
/**
* Registra uma instância do Unity para um container específico
*/
static registerUnityInstance(containerId: string, instance: UnityInstance): void;
/**
* Remove registro de uma instância do Unity
*/
static unregisterUnityInstance(containerId: string): void;
/**
* Limpa todas as instâncias registradas
*/
static clearAllInstances(): void;
/**
* Obtém informações de debug do estado atual
*/
static getDebugInfo(container?: HTMLElement): UnityDebugInfo;
}