import type { AssetContainer } from "@babylonjs/core/assetContainer"; import type { ISceneLoaderPluginAsync, ISceneLoaderPluginExtensions, 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, MmdModelLoadState } from "./mmdModelLoader"; import { MmdModelLoader } from "./mmdModelLoader"; import type { MmdModelMetadata } from "./mmdModelMetadata"; import type { ILogger } from "./Parser/ILogger"; import { PmxObject } from "./Parser/pmxObject"; import type { Progress, ProgressTask } from "./progress"; interface PmLoadState extends MmdModelLoadState { readonly referenceFiles: readonly File[]; } /** * @internal * Base class of pmx / pmd loader */ export declare abstract class PmLoader extends MmdModelLoader implements ISceneLoaderPluginAsync, ILogger { /** * Reference files for load PMX / PMD from files (textures) * * This property is used to load textures from files * * pmx / pmd files typically store texture files separately in a subdirectory of url root * * Therefore, in order to load it as a file, you need to put information about these files separately */ referenceFiles: readonly File[]; /** * Create a new PmLoader */ constructor(name: string, extensions: ISceneLoaderPluginExtensions); loadFile(scene: Scene, fileOrUrl: string | File, _rootUrl: string, onSuccess: (data: PmLoadState, responseURL?: string | undefined) => void, onProgress?: ((ev: ISceneLoaderProgressEvent) => void) | undefined, useArrayBuffer?: boolean | undefined, onError?: ((request?: WebRequest | undefined, exception?: LoadFileError | undefined) => void) | undefined): IFileRequest; protected _getProgressTaskCosts(state: PmLoadState, modelObject: PmxObject): ProgressTask[]; protected _buildGeometryAsync(state: PmLoadState, modelObject: PmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, progress: Progress): Promise; protected _buildMaterialAsync(state: PmLoadState, modelObject: PmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, vertexData: VertexData, rootUrl: string, progress: Progress): Promise; protected _buildSubMeshes(modelObject: PmxObject, mesh: Mesh): void; protected _buildMorphAsync(modelObject: PmxObject, mesh: Mesh, scene: Scene, assetContainer: Nullable, vertexData: VertexData, morphsMetadata: MmdModelMetadata.Morph[], progress: Progress): Promise; } export {};