import { Object3D } from 'three';
import type { IComponent, IContext } from './engine_types.js';
import type { INeedleXRSessionEventReceiver } from "./engine_xr.js";
/** @internal */
export declare function hasNewScripts(): boolean;
/**
 * This method is called by the engine to process new scripts that were added to the scene.
 * It will call the registering method on the script, then the awake method and finally the onEnable method.
 * @internal
 */
export declare function processNewScripts(context: IContext): void;
/** @internal */
export declare function processRemoveFromScene(script: IComponent): void;
/** @internal */
export declare function processStart(context: IContext, object?: Object3D): void;
/** @internal */
export declare function addScriptToArrays(script: any, context: IContext): void;
/** @internal */
export declare function removeScriptFromContext(script: any, context: IContext): void;
/** @internal */
export declare function isNeedleXRSessionEventReceiver(script: any, mode: XRSessionMode | null): script is INeedleXRSessionEventReceiver;
export declare function markHierarchyDirty(): void;
/** @internal */
export declare function updateIsActive(obj?: Object3D, force?: boolean): void;
/** @internal */
export declare function updateActiveInHierarchyWithoutEventCall(go: Object3D): void;
/** @internal */
export declare function registerPrewarmObject(obj: Object3D, context: IContext): void;
/** @internal called by the engine to remove scroll or animation hiccup when objects are rendered/compiled for the first time */
export declare function runPrewarm(context: IContext): void;
/** @internal */
export declare function clearPrewarmList(context: IContext): void;
