import type { EngineGlobalObject } from "../EngineGlobalObject"; import type { Instantiater } from "../Instantiater"; import type { ReadonlyQuaternion } from "../math/ReadonlyQuaternion"; import type { ReadonlyVector3 } from "../math/ReadonlyVector3"; import { GameObjectBuilder } from "./GameObjectBuilder"; /** * this class is used to define a prefab * do not override constructor it's break the engine */ export declare abstract class Prefab { private readonly _instantiater; private readonly _gameObjectBuilder; constructor(engineGlobalObject: EngineGlobalObject, name: string, localPosition?: ReadonlyVector3, localRotation?: ReadonlyQuaternion, localScale?: ReadonlyVector3); /** * make a builder for game object */ abstract make(): GameObjectBuilder; /** * get global engine object */ protected get instantiater(): Instantiater; /** * get game object builder */ protected get gameObjectBuilder(): GameObjectBuilder; }