import { Nullable } from "@babylonjs/core"; import { HolisticConfig } from "@mediapipe/holistic"; import { Options as FMOptions } from "@mediapipe/face_mesh"; import { HolisticOptions } from "./mediapipe"; import { VRMManager } from "v3d-core-realbits/dist/src/importer/babylon-vrm-loader/src"; import { V3DCore } from "v3d-core-realbits/dist/src"; import { CloneableQuaternionMap } from "./helper/quaternion"; export interface HolisticState { ready: boolean; activeEffect: string; holisticUpdate: boolean; } export interface FaceMeshState { ready: boolean; activeEffect: string; faceMeshUpdate: boolean; } export interface BoneState { boneRotations: Nullable; bonesNeedUpdate: boolean; } export interface BoneOptions { blinkLinkLR: boolean; expression: "Neutral" | "Happy" | "Angry" | "Sad" | "Relaxed" | "Surprised"; irisLockX: boolean; lockFinger: boolean; lockArm: boolean; lockLeg: boolean; resetInvisible: boolean; } export declare class V3DWeb { readonly videoElement?: Nullable | undefined; readonly webglCanvasElement?: Nullable | undefined; readonly videoCanvasElement?: Nullable | undefined; readonly controlsElement?: Nullable | undefined; private readonly holisticConfig?; private readonly loadingDiv?; private readonly useMotionUpdate?; private readonly useFaceMesh?; private readonly worker; private workerPose; private boneState; private _boneOptions; get boneOptions(): BoneOptions; set boneOptions(value: BoneOptions); private readonly _updateBufferCallback; private customLoadingScreen; private _v3DCore; get v3DCore(): Nullable; private _vrmManager; get vrmManager(): Nullable; private readonly engine; private _vrmFile; set vrmFile(value: File | string); private readonly fpsControl; private readonly holistic; private holisticState; private _holisticOptions; get holisticOptions(): HolisticOptions; set holisticOptions(value: HolisticOptions); private readonly faceMesh; private faceMeshState; private _faceMeshOptions; get faceMeshOptions(): FMOptions; set faceMeshOptions(value: FMOptions); private _cameraList; get cameraList(): MediaDeviceInfo[]; constructor(vrmFilePath: string, videoElement?: Nullable | undefined, webglCanvasElement?: Nullable | undefined, videoCanvasElement?: Nullable | undefined, controlsElement?: Nullable | undefined, holisticConfig?: HolisticConfig | undefined, loadingDiv?: Nullable | undefined, useMotionUpdate?: Nullable | undefined, useFaceMesh?: Nullable | undefined, afterInitCallback?: (...args: any[]) => any); getVideoDevices(): Promise; getCamera(idx: number): Promise; /** * Close and dispose the application (BabylonJS and MediaPipe) */ close(): void; /** * Reset poses and holistic */ reset(): void; switchSource(idx: number): void; private switchModel; } export default V3DWeb;