import { type LazyExoticComponent, type FunctionComponent } from 'react'; import { type ModulesConfigurator, type ModulesInstanceType, type AnyModule } from '@equinor/fusion-framework-module'; type ModuleProviderCreator = = Array, TRef extends ModulesInstanceType<[AnyModule]> = any>(configurator: ModulesConfigurator, ref?: TRef) => Promise>; /** * Function for creating a `ModuleProvider` component. * * __NOTE:__ this function requires component to be wrapped in `Suspense` * * @example * ```ts * import http, { HttpModule } from '@equinor/fusion-framework-module-http'; * import msal, { MsalModule } from '@equinor/fusion-framework-module-msal'; * import { ModulesConfigurator } from '@equinor/fusion-framework-module'; * import { createModuleProvider } from '@equinor/fusion-framework-react-module'; * * const configurator = new ModulesConfigurator([http, msal]); * configurator.onConfigured((config) => { * config.auth.configureDefault({ * tenantId: 'MY_TENANT_ID', * clientId: 'MY_CLIENT_ID', * redirectUri: '/authentication/login-callback', * }); * config.http.configureClient('foo', { * baseUri: 'https://foo.bar', * defaultScopes: ['FOO_CLIENT_ID/.default'], * }); * }); * * export default createModuleProvider(configurator); * ``` * @param configurator configurator for the modules that should be initialized * @param ref optional parent module instance * @returns Suspensive `ModuleProvider` */ export declare const createModuleProvider: ModuleProviderCreator; export declare const ModuleProvider: import("react").Provider>; export default ModuleProvider;