import type { Scene } from "@babylonjs/core/scene"; import type { IAudioPlayer } from "../Audio/IAudioPlayer"; import type { IMmdRuntime } from "../IMmdRuntime"; /** * Display time format * * This enum is used for `MmdPlayerControl.displayTimeFormat` */ export declare enum DisplayTimeFormat { Seconds = 0, Frames = 1 } /** * Mmd player control * * Create youtube-like player control for MMD * * It's just a GUI for debugging purposes, so it doesn't offer a lot of customization, and We don't plan to */ export declare class MmdPlayerControl { autoHidePlayerControl: boolean; hidePlayerControlTimeout: number; displayTimeFormat: DisplayTimeFormat; private readonly _mmdRuntime; private readonly _audioPlayer; private _newCanvasContainer; private _playerContainer; private _hidePlayerControlTimeoutId; private _playButton; private _timeSlider; private _soundButton; private _volumeSlider; private _currentFrameNumberSpan; private _endFrameNumberSpan; private _speedSlider; private _fullscreenButton; private _disposeObserver; /** * Create a MMD player control * @param scene Scene * @param mmdRuntime MMD runtime * @param audioPlayer Audio player * @throws {Error} if failed to get root element */ constructor(scene: Scene, mmdRuntime: IMmdRuntime, audioPlayer?: IAudioPlayer); private _createCanvasContainer; private _restoreCanvasContainer; private _createPlayerControl; private readonly _onPlayerControlMouseEnter; private readonly _onPlayerControlMouseLeave; private readonly _onAnimationPlay; private readonly _onAnimationPause; private readonly _onAnimationDurationChanged; private readonly _onAnimationTick; private readonly _onMuteStateChanged; private _formattedTimeCacheKey; private _formatterTimeCacheValue; private _getFormattedTime; /** * Hide player control */ hidePlayerControl(): void; /** * Show player control */ showPlayerControl(): void; /** * Dispose this object */ dispose(): void; }