import { Engine, Entity, Scene } from "@galacean/engine-core"; import { PrefabResource } from "../../../prefab/PrefabResource"; import type { IEntity, IHierarchyFile } from "../schema"; import { ParserContext } from "./ParserContext"; import { ReflectionParser } from "./ReflectionParser"; /** @Internal */ export declare abstract class HierarchyParser> { readonly data: IHierarchyFile; readonly context: V; /** * The promise of parsed object. */ readonly promise: Promise; protected _resolve: (item: T) => void; protected _reject: (reason: any) => void; protected _engine: Engine; protected _reflectionParser: ReflectionParser; private _prefabContextMap; private _prefabPromiseMap; constructor(data: IHierarchyFile, context: V); /** start parse the scene or prefab or others */ start(): void; protected _applyEntityData(entity: Entity, entityConfig?: IEntity): Entity; protected abstract _handleRootEntity(id: string): void; protected abstract _clearAndResolve(): Scene | PrefabResource; private _parseEntities; private _parseComponents; private _parsePrefabModification; private _parseAddedComponents; private _parsePrefabRemovedEntities; private _parsePrefabRemovedComponents; private _organizeEntities; private _getEntityByConfig; private _parseEntity; private _parsePrefab; private _parseStrippedEntity; private _parseChildren; private _addComponents; private _generateInstanceContext; private _parseComponentsPropsAndMethods; private _addComponentPlugin; private _addEntityPlugin; }