import { Scene as ThreeScene } from "three/src/Three";
import type { GameObject } from "./GameObject";
import type { GameObjectBuilder } from "./GameObjectBuilder";
import { Transform } from "./Transform";
/**
 * scene is a container for all game objects
 * do not drive this class
 */
export declare class Scene {
    private readonly _threeScene;
    /**
     * add gameObject to scene
     * @param gameObjectBuilder
     */
    addChildFromBuilder(gameObjectBuilder: GameObjectBuilder): GameObject;
    /**
     * foreach children transform
     *
     * you must not change length of children array while iterating
     * @param callback
     */
    foreachChild(callback: (transform: Transform) => void): void;
    /**
     * iterate children transfrom
     *
     * you must not change length of children array while iterating
     * @param callback if return false, stop iteration
     */
    iterateChild(callback: (transform: Transform) => boolean): void;
    get children(): Transform[];
    unsafeGetThreeScene(): ThreeScene;
}
