import type { AssetContainer } from "@babylonjs/core/assetContainer"; import { type ISceneLoaderPluginAsync, type ISceneLoaderProgressEvent } from "@babylonjs/core/Loading/sceneLoader"; import type { Mesh } from "@babylonjs/core/Meshes/mesh"; import { VertexData } from "@babylonjs/core/Meshes/mesh.vertexData"; import type { IFileRequest } from "@babylonjs/core/Misc/fileRequest"; import type { LoadFileError } from "@babylonjs/core/Misc/fileTools"; import type { WebRequest } from "@babylonjs/core/Misc/webRequest"; import { MorphTargetManager } from "@babylonjs/core/Morph/morphTargetManager"; import type { Scene } from "@babylonjs/core/scene"; import type { Nullable } from "@babylonjs/core/types"; import type { BuildGeometryResult, BuildMaterialResult } from "../mmdModelLoader"; import { MmdModelLoader, type MmdModelLoadState } from "../mmdModelLoader"; import type { MmdModelMetadata } from "../mmdModelMetadata"; import type { ILogger } from "../Parser/ILogger"; import type { Progress, ProgressTask } from "../progress"; import type { BpmxObject } from "./Parser/bpmxObject"; interface BpmxLoadState extends MmdModelLoadState { } /** * BpmxLoader is a loader that loads models in BPMX format * * BPMX is a single binary file format that contains all the data of a model */ export declare class BpmxLoader extends MmdModelLoader implements ISceneLoaderPluginAsync, ILogger { /** * Create a new BpmxLoader */ constructor(); loadFile(scene: Scene, fileOrUrl: string | File, _rootUrl: string, onSuccess: (data: BpmxLoadState, responseURL?: string | undefined) => void, onProgress?: ((ev: ISceneLoaderProgressEvent) => void) | undefined, useArrayBuffer?: boolean | undefined, onError?: ((request?: WebRequest | undefined, exception?: LoadFileError | undefined) => void) | undefined): IFileRequest; protected _parseFileAsync(arrayBuffer: ArrayBuffer): Promise; protected _getProgressTaskCosts(state: BpmxLoadState, modelObject: BpmxObject): ProgressTask[]; protected _buildGeometryAsync(state: BpmxLoadState, modelObject: BpmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, progress: Progress): Promise; protected _buildMaterialAsync(state: BpmxLoadState, modelObject: BpmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, vertexData: VertexData, rootUrl: string, progress: Progress): Promise; protected _buildSubMeshes(modelObject: BpmxObject, mesh: Mesh): void; protected _buildMorphAsync(modelObject: BpmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, vertexData: VertexData, morphsMetadata: MmdModelMetadata.Morph[], progress: Progress): Promise; } export {};