import { Scene } from '@babylonjs/core/scene.js'; import { Nullable } from '@babylonjs/core/types.js'; import { CreateInfo } from './codeGenerationDescriptors'; import { CreatedInstanceMetadata } from './CreatedInstance'; import { LifecycleListener } from './LifecycleListener'; import { HasPropsHandlers } from './PropsHandler'; export type DynamicHost = { /** * lookup on host element */ hostElementName: string; /** * null is only valid when the metadata declares a deferred creation and the lifecycle listener creates the instance. */ hostFactory: (scene: Scene, props: any) => Nullable; propHandlerInstance: HasPropsHandlers; createInfo: CreateInfo; metadata: CreatedInstanceMetadata; lifecycleListenerFactory?: (scene: Scene, props: any) => LifecycleListener; }; /** * Experimental - this will change - just a demo! * * Allows dynamic registration of host elements that the reconciler will take into consideration (case sensitive). */ export declare class HostRegistrationStore { private static _store; /** * Registers a new host element * @param host host element to dynamically register */ static Register(host: DynamicHost): void; /** * Retrieve a registered host by element name */ static GetRegisteredHost(hostElementName: string): DynamicHost | undefined; }