import { type FactoryModule } from '../module-types'; import { type BaseModuleState, type Loader } from '../types'; import { type LoadingState } from './types'; export type UseModuleFactoryParams = { /** * Загрузчик модуля */ loader: Loader>; /** * Параметры, которые будут переданы в загрузчик (и будут переданы на сервер модуля) */ loaderParams?: LoaderParams; /** * Параметры, которые будут переданы в run-функцию модуля */ runParams?: RunParams; /** * Функция, который позволяет дополнить/изменить серверный стейт модуля перед вызовом фабрики */ getFactoryParams?: (params: ServerState) => ServerState; }; export type UseModuleFactoryResult = { /** * Состояние загрузки модуля */ loadingState: LoadingState; /** * Экспорт модуля */ module: ModuleExportType | undefined; }; export declare function useModuleFactory({ loader, loaderParams, runParams, getFactoryParams, }: UseModuleFactoryParams): UseModuleFactoryResult;