vlibras-player-webjs
Version:
Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS
188 lines • 4.76 kB
TypeScript
/**
* Tipos do núcleo (Core) do VLibras
* Single Responsibility: Tipos apenas do core do sistema
*/
export interface VLibrasPlayerConfig {
container?: string | HTMLElement;
width?: number;
height?: string | number;
responsive?: boolean;
autoplay?: boolean;
controls?: boolean;
muted?: boolean;
debug?: boolean;
theme?: 'light' | 'dark' | 'high-contrast' | 'auto';
language?: 'pt-br' | 'en' | 'es';
enableCache?: boolean;
cacheTimeout?: number;
fallbackUrl?: string;
targetPath?: string;
errorCallback?: (error: Error) => void;
loadingCallback?: (progress: number) => void;
onReady?: () => void;
onLoad?: () => void;
onPlay?: () => void;
onPause?: () => void;
onStop?: () => void;
onError?: (error: Error) => void;
}
/**
* Configurações específicas para presets
*/
export interface PresetConfig extends VLibrasPlayerConfig {
name?: string;
description?: string;
autoPlay?: boolean;
showControls?: boolean;
showProgress?: boolean;
showWordBadge?: boolean;
allowReplay?: boolean;
hideText?: boolean;
allowSkip?: boolean;
showSubtitles?: boolean;
minimalUI?: boolean;
autoScale?: boolean;
showQualitySelector?: boolean;
showEssentialControlsOnly?: boolean;
size?: 'small' | 'medium' | 'large' | 'fullscreen';
onComplete?: () => void;
onProgress?: (progress: number) => void;
onStateChange?: (state: string) => void;
onSkip?: () => void;
enableKeyboardShortcuts?: boolean;
enableAnalytics?: boolean;
cacheEnabled?: boolean;
}
export interface VLibrasPlayerState {
isLoaded: boolean;
isPlaying: boolean;
isPaused: boolean;
isMuted: boolean;
currentTime: number;
duration: number;
volume: number;
playbackRate: number;
error?: Error;
}
export interface PlaybackResult {
success: boolean;
duration?: number;
totalFrames?: number;
startTime?: number;
endTime?: number;
error?: Error;
metadata?: {
text: string;
language: string;
timestamp: number;
};
}
export interface UnityConfig {
unityLoaderUrl: string;
buildUrl: string;
companyName: string;
productName: string;
productVersion: string;
}
export interface GlosaConfig {
enableGloss?: boolean;
glossSpeed?: number;
glossDelay?: number;
customGlossMap?: Map<string, string>;
}
export interface GlobalConfigOptions {
debug?: boolean;
logLevel?: 'error' | 'warn' | 'info' | 'debug';
theme?: 'light' | 'dark' | 'high-contrast' | 'auto';
language?: 'pt-br' | 'en' | 'es';
accessibility?: {
enableKeyboardNavigation?: boolean;
enableScreenReader?: boolean;
enableHighContrast?: boolean;
enableReducedMotion?: boolean;
ariaLabels?: Record<string, string>;
};
performance?: {
enableOptimizations?: boolean;
preloadAssets?: boolean;
enableWebWorkers?: boolean;
maxConcurrentRequests?: number;
};
api?: {
baseUrl?: string;
timeout?: number;
retryAttempts?: number;
enableCors?: boolean;
};
}
/**
* Configuração legacy do player
*/
export interface PlayerConfig {
translator?: string;
targetPath?: string;
onLoad?: () => void;
progress?: (wrapper: HTMLElement) => any;
}
/**
* Estados do player (legacy)
*/
export declare enum PlayerStatus {
IDLE = "idle",
INITIALIZING = "initializing",
LOADING_ASSETS = "loading_assets",
READY = "ready",
TRANSLATING = "translating",
PLAYING = "playing",
PAUSED = "paused",
COMPLETED = "completed",
ERROR = "error"
}
/**
* Opções para tradução
*/
export interface TranslateOptions {
isEnabledStats?: boolean;
}
/**
* Opções para reprodução
*/
export interface PlayOptions {
fromTranslation?: boolean;
isEnabledStats?: boolean;
}
/**
* Configurações de personalização do avatar
*/
export interface PersonalizationConfig {
appearance?: {
skinColor?: string;
hairColor?: string;
clothingColor?: string;
};
speed?: number;
}
/**
* Velocidades suportadas
*/
export type PlaybackSpeed = 0.5 | 1.0 | 1.5 | 2.0;
/**
* Regiões suportadas
*/
export type SupportedRegion = 'BR' | 'PE' | 'RJ' | 'SP';
/**
* Interface para o Unity Player
*/
export interface UnityPlayer {
SendMessage: (objectName: string, methodName: string, value?: any) => void;
}
/**
* Interface para o UnityLoader global
*/
export interface IUnityLoader {
instantiate: (containerId: string, configPath: string, options: any) => UnityPlayer;
SystemInfo: {
hasWebGL: boolean;
};
}
//# sourceMappingURL=core.types.d.ts.map