import type { Emitter } from 'mitt'; import type { Metrics } from '../../platform/item/metrics'; import { SpringBoneParams } from '../../platform/item/wearable/spring-bones'; import type { PreviewEmoteEventType } from './preview-emote-event-type'; import { SocialEmoteAnimation } from './social-emote-animation'; import { EmoteDefinition } from './emote-definition'; export interface IPreviewController { scene: ISceneController; emote: IEmoteController; physics: IPhysicsController; } export type EmoteEvents = { [PreviewEmoteEventType.ANIMATION_PLAY]: void; [PreviewEmoteEventType.ANIMATION_PAUSE]: void; [PreviewEmoteEventType.ANIMATION_LOOP]: void; [PreviewEmoteEventType.ANIMATION_END]: void; [PreviewEmoteEventType.ANIMATION_PLAYING]: { length: number; }; }; export interface ISceneController { getScreenshot(width: number, height: number): Promise; getMetrics(): Promise; changeZoom(zoom: number): Promise; panCamera(offset: { x?: number; y?: number; z?: number; }): Promise; changeCameraPosition(position: { alpha?: number; beta?: number; radius?: number; }): Promise; setUsername(username: string): Promise; cleanup(): Promise; } export interface IEmoteController { getLength(): Promise; isPlaying(): Promise; goTo(seconds: number): Promise; play(): Promise; pause(): Promise; stop(): Promise; enableSound(): Promise; disableSound(): Promise; hasSound(): Promise; isSocialEmote(): Promise; getSocialEmoteAnimations: () => Promise; getPlayingSocialEmoteAnimation: () => Promise; emote: EmoteDefinition | null; events: Emitter; } export interface IPhysicsController { setSpringBonesParams(itemId: string, params: Record): Promise; } //# sourceMappingURL=preview-controller.d.ts.map