import { type MountableModule } from '../module-types'; import { type BaseModuleState, type Loader } from '../types'; import { type LoadingState } from './types'; export type UseModuleLoaderParams = { /** * Загрузчик модуля */ loader: Loader>; /** * Параметры, которые будут переданы в загрузчик (и будут переданы на сервер модуля) */ loaderParams?: LoaderParams; /** * Параметры, которые будут переданы в run-функцию модуля */ runParams?: RunParams; /** * Флаг, указывающий, нужно ли использовать shadow-dom для монтирования модуля. * По умолчанию false. * Модуль должен быть собран с помощью версии arui-scripts, которая поддерживает shadow-dom. */ useShadowDom?: boolean; /** * Опциональная функция, которая будет вызвана для создания DOM-ноды, в которую будет монтироваться модуль. * По умолчанию будет создан div. */ createTargetNode?: () => HTMLElement; }; export type UseModuleLoaderResult = { /** * Состояние загрузки модуля */ loadingState: LoadingState; /** * Функция, которая должна быть передана в ref-проп элемента, в который будет монтироваться модуль. * @param node */ targetElementRef: (node: HTMLElement | null) => void; }; export declare function useModuleMounter({ loader, loaderParams, runParams, createTargetNode, useShadowDom, }: UseModuleLoaderParams): UseModuleLoaderResult;