import type { Component } from "./Component"; import type { ComponentConstructor } from "./ComponentConstructor"; import { GameObject } from "./GameObject"; import type { InitializeComponent } from "./InitializeComponent"; import type { PrefabRef } from "./PrefabRef"; /** * builder for GameObject */ export declare class GameObjectBuilder { private readonly _gameObject; private readonly _children; private readonly _componentInitializeFuncList; private _isBuilt; /** * set active in hierarchy * @param active * @returns */ active(active: boolean): GameObjectBuilder; /** * get gameObject as call by reference * @param gameObjectRef * @returns */ getGameObject(gameObjectRef: PrefabRef): GameObjectBuilder; /** * get component of componentCtor: ComponentConstructor as call by reference * @param componentCtor * @param componentRef * @returns */ getComponent(componentCtor: ComponentConstructor, componentRef: PrefabRef): GameObjectBuilder; /** * get all components as call by reference * @param componentsRef * @returns */ getComponents(componentsRef: PrefabRef): GameObjectBuilder; /** * get all components of componentCtor: ComponentConstructor as call by reference * @param componentsRef * @param componentCtor * @returns */ getComponents(componentsRef: PrefabRef, componentCtor: ComponentConstructor): GameObjectBuilder; /** * get component of componentCtor: ComponentConstructor in GameObject or any of its children as call by reference * @param componentCtor * @param componentRef * @returns */ getComponentInChildren(componentCtor: ComponentConstructor, componentRef: PrefabRef): GameObjectBuilder; /** * get all components in GameObject or any of its children as call by reference * @param componentsRef * @returns */ getComponentsInChildren(componentsRef: PrefabRef): GameObjectBuilder; /** * get all components of componentCtor: ComponentConstructor in GameObject or any of its children as call by reference * @param componentsRef * @param componentCtor * @returns */ getComponentsInChildren(componentsRef: PrefabRef, componentCtor: ComponentConstructor): GameObjectBuilder; /** * add component of componentCtor: ComponentConstructor to GameObject * @param componentCtor * @returns */ withComponent(componentCtor: ComponentConstructor): GameObjectBuilder; /** * add component of componentCtor: ComponentConstructor to GameObject with initialize function * @param componentCtor * @param componentInitializeFunc * @returns */ withComponent(componentCtor: ComponentConstructor, componentInitializeFunc?: (component: InitializeComponent) => void): GameObjectBuilder; /** * with child GameObject * @param child * @returns */ withChild(child: GameObjectBuilder): GameObjectBuilder; private checkComponentRequirements; private registerTransform; private chackComponentRequirementsRecursive; private componentInitialize; }