import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api'; import { ComponentType, ReactNode } from 'react'; /** * Creates extensions that wrap plugin extensions with providers. * * @alpha */ declare const PluginWrapperBlueprint: _backstage_frontend_plugin_api.ExtensionBlueprint<{ kind: "plugin-wrapper"; params: (params: { loader: () => Promise<{ component: ComponentType<{ children: ReactNode; }>; }>; }) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<{ loader: () => Promise<{ component: ComponentType<{ children: ReactNode; }>; }>; }>; output: _backstage_frontend_plugin_api.ExtensionDataRef<() => Promise<{ component: ComponentType<{ children: ReactNode; }>; }>, "core.plugin-wrapper.loader", {}>; inputs: {}; config: {}; configInput: {}; dataRefs: { wrapper: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<{ component: ComponentType<{ children: ReactNode; }>; }>, "core.plugin-wrapper.loader", {}>; }; }>; /** * The Plugin Wrapper API is used to wrap plugin extensions with providers, * plugins should generally use `ExtensionBoundary` instead. * * @remarks * * This API is primarily intended for internal use by the Backstage frontend * system, but can be used for advanced use-cases. If you do override it, be * sure to include the default implementation as well. * * @alpha */ type PluginWrapperApi = { /** * Returns a wrapper component for a specific plugin, or undefined if no * wrappers exist. Do not use this API directly, instead use * `ExtensionBoundary` to wrap your plugin components if needed. */ getPluginWrapper(pluginId: string): ComponentType<{ children: ReactNode; }> | undefined; }; /** * The API reference of {@link PluginWrapperApi}. * * @alpha */ declare const pluginWrapperApiRef: _backstage_frontend_plugin_api.ApiRef; export { PluginWrapperBlueprint, pluginWrapperApiRef }; export type { PluginWrapperApi };