import { AssetPromise, EngineObject } from "@galacean/engine-core"; import type { GLTFExtensionOwnerSchema } from "../GLTFSchema"; import { GLTFExtensionMode, GLTFExtensionParser } from "../extensions/GLTFExtensionParser"; import { GLTFParserContext } from "./GLTFParserContext"; /** * Base class of glTF parser. */ export declare abstract class GLTFParser { private static readonly _extensionParsers; /** * Execute all parses of extension to create resource. * @param extensions - Related extensions field * @param context - The parser context * @param ownerSchema - The extension owner schema * @param extra - Extra params * @returns */ static executeExtensionsCreateAndParse(extensions: { [key: string]: any; }, context: GLTFParserContext, ownerSchema: GLTFExtensionOwnerSchema, ...extra: any[]): EngineObject | void | AssetPromise; /** * Execute all parses of extension to parse resource. * @param extensions - Related extensions field * @param context - The parser context * @param parseResource - The parsed resource * @param ownerSchema - The extension owner schema * @param extra - Extra params */ static executeExtensionsAdditiveAndParse(extensions: { [key: string]: any; }, context: GLTFParserContext, parseResource: EngineObject, ownerSchema: GLTFExtensionOwnerSchema, ...extra: any[]): void; /** * Whether the plugin is registered. * @param extensionName - Extension name * @returns Boolean */ static hasExtensionParser(extensionName: string): boolean; /** * Get the last plugin by glTF extension mode. * @param extensionName - Extension name * @param mode - GLTF extension mode * @returns GLTF extension parser */ static getExtensionParser(extensionName: string, mode: GLTFExtensionMode): GLTFExtensionParser | undefined; /** * @internal */ static _addExtensionParser(extensionName: string, extensionParser: GLTFExtensionParser): void; private static _createAndParse; private static _additiveParse; abstract parse(context: GLTFParserContext, index?: number): any; } /** * Declare ExtensionParser's decorator. * @param extensionName - Extension name */ export declare function registerGLTFExtension(extensionName: string, mode: GLTFExtensionMode): (parser: new () => GLTFExtensionParser) => void;