import { ISceneLoaderProgressEvent } from '@babylonjs/core/Loading/sceneLoader.js'; import { Scene } from '@babylonjs/core/scene.js'; import { Nullable } from '@babylonjs/core/types.js'; import React from 'react'; import { FiberMeshProps } from '../../generatedProps'; import { ILoadedModel, LoadedModel } from './loadedModel'; export type SceneLoaderContextType = { updateProgress: (progress: ISceneLoaderProgressEvent) => void; lastProgress?: Nullable; } | undefined; export declare const SceneLoaderContext: React.Context; export type SceneLoaderContextProviderProps = { startProgress?: ISceneLoaderProgressEvent; children: React.ReactNode; }; export declare const SceneLoaderContextProvider: React.FC; export type SceneLoaderOptions = { /** * An array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported */ meshNames?: any; /** * set that all meshes receive shadows. * Defaults to false. */ receiveShadows?: boolean; /** * Scale entire model within these square bounds * Defaults to no scaling. */ scaleToDimension?: number; /** * Always select root mesh as active. * Defaults to false. */ alwaysSelectAsActiveMesh?: boolean; /** * SceneLoader progress events are set on context provider (when available). * Defaults to false. */ reportProgress?: boolean; /** * Not needed if you are within a SceneContext. */ scene?: Scene; /** * Access to loaded model as soon as it is loaded, so it provides a way to hide or scale the meshes before the first render. */ onModelLoaded?: (loadedModel: ILoadedModel) => void; /** * Raw progress event for SceneLoader */ onLoadProgress?: (event: ISceneLoaderProgressEvent) => void; /** * Called if SceneLoader returns an error. */ onModelError?: (message: string, exception?: any) => void; }; export declare const useSceneLoader: (rootUrl: string, sceneFilename: string, pluginExtension?: string, options?: SceneLoaderOptions, initialProps?: FiberMeshProps) => LoadedModel;