import { VLibrasPlayerConfig, PlayerStatus, TranslateOptions, PlayOptions, PersonalizationConfig, PlaybackSpeed, SupportedRegion, PlaybackResult } from '../../types/core.types';
import { VLibrasEventEmitter } from '../../infrastructure/events/VLibrasEvents';
/**
 * VLibras Player - Classe principal para controle do avatar de Libras
 */
export declare class VLibrasPlayer {
    private options;
    private playerManager;
    private translator;
    private text?;
    private gloss?;
    eventEmitter: VLibrasEventEmitter;
    private loaded;
    private gameContainer?;
    private player?;
    private status;
    private region;
    private globalGlossLength;
    constructor(options?: VLibrasPlayerConfig);
    /**
     * Configura eventos do PlayerManager
     */
    private setupPlayerManagerEvents;
    /**
     * Carrega o player no elemento wrapper especificado
     */
    load(wrapper: HTMLElement): void;
    /**
     * Traduz texto para glosa e reproduz
     */
    translate(text: string, options?: TranslateOptions): void;
    /**
     * Reproduz glosa
     */
    play(gloss?: string, options?: PlayOptions): void;
    /**
     * Reproduz mensagem de boas-vindas
     */
    playWelcome(): void;
    /**
     * Continua reprodução
     */
    continue(): void;
    /**
     * Repete reprodução atual
     */
    repeat(): void;
    /**
     * Pausa reprodução
     */
    pause(): void;
    /**
     * Para reprodução
     */
    stop(): void;
    /**
     * Define velocidade de reprodução
     */
    setSpeed(speed: PlaybackSpeed): void;
    /**
     * Define personalização do avatar
     */
    setPersonalization(personalization: PersonalizationConfig): void;
    /**
     * Muda avatar
     */
    changeAvatar(avatarName: string): void;
    /**
     * Alterna legendas
     */
    toggleSubtitle(): void;
    /**
     * Define região
     */
    setRegion(region: SupportedRegion): void;
    getStatus(): PlayerStatus;
    getText(): string | undefined;
    getGloss(): string | undefined;
    isLoaded(): boolean;
    getRegion(): SupportedRegion;
    /**
     * Obtém o event emitter do player
     */
    getEventEmitter(): VLibrasEventEmitter;
    private isDefaultUrl;
    private getTargetScript;
    private joinUrl;
    private initializeUnity;
    private changeStatus;
    protected onLoad(): void;
    protected onTranslateStart(): void;
    protected onTranslateEnd(): void;
    protected onGlossStart(): void;
    protected onGlossEnd(_glossLength: string): void;
    protected onAnimationPlay(): void;
    protected onAnimationPause(): void;
    protected onAnimationEnd(): void;
    protected onAnimationProgress(progress: number): void;
    protected onGlossResponse(_counter: number, _glossLength: string): void;
    protected onGetAvatar(_avatar: any): void;
    protected onStartWelcome(): void;
    protected onStopWelcome(_finished: boolean): void;
    protected onError(error: string): void;
    /**
     * Adiciona listener para eventos do player
     */ on<K extends keyof import('../../infrastructure/events/VLibrasEvents').PlayerEvents>(event: K, listener: (data: import('../../infrastructure/events/VLibrasEvents').PlayerEvents[K]) => void): () => void;
    /**
     * Remove listener de evento
     */ off<K extends keyof import('../../infrastructure/events/VLibrasEvents').PlayerEvents>(event: K, listener: (data: import('../../infrastructure/events/VLibrasEvents').PlayerEvents[K]) => void): void;
    /**
     * Configura Unity Bridge automaticamente
     */
    setupUnityBridge(): void;
    /**
     * Aplica CSS otimizado automaticamente
     */
    setupOptimizedCSS(containerSelector?: string): void;
    /**
     * Executa diagnósticos do sistema
     */
    runDiagnostics(): Promise<import("../../features/devtools/VLibrasDevTools").DiagnosticResult>;
    /**
     * Ativa modo debug
     */
    enableDebugMode(): void;
    /**
     * Desativa modo debug
     */
    disableDebugMode(): void;
    /**
     * Verifica se está em modo debug
     */
    isDebugMode(): boolean;
    /**
     * Obtém estatísticas do player
     */
    getStats(): {
        status: PlayerStatus;
        loaded: boolean;
        region: SupportedRegion;
        text: string | undefined;
        gloss: string | undefined;
    };
    /**
     * Carrega o player de forma assíncrona
     */
    loadAsync(wrapper: HTMLElement): Promise<void>;
    /**
     * Traduz texto de forma assíncrona
     */
    translateAsync(text: string, options?: TranslateOptions): Promise<string>;
    /**
     * Reproduz glosa de forma assíncrona
     */
    playAsync(gloss?: string, options?: PlayOptions): Promise<PlaybackResult>;
    /**
     * Traduz e reproduz texto em uma única operação assíncrona
     */
    translateAndPlay(text: string, options?: TranslateOptions): Promise<PlaybackResult>;
    /**
     * Aguarda até o player estar pronto
     */
    waitForReady(): Promise<void>;
    /**
     * Destrói o player e limpa recursos
     */
    destroy(): void;
}
//# sourceMappingURL=VLibrasPlayer.d.ts.map