import type { UmbApiConstructorArgumentsMethodType } from '../functions/index.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import type { ManifestApi, ManifestBase } from '../types/index.js'; import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { type PermittedControllerType, UmbBaseExtensionsInitializer, type UmbBaseExtensionsInitializerArgs } from './base-extensions-initializer.controller.js'; import { UmbExtensionApiInitializer } from './extension-api-initializer.controller.js'; import type { UmbControllerHost } from '../../controller-api/index.js'; export interface UmbExtensionsApiInitializerArgs extends UmbBaseExtensionsInitializerArgs { } /** * This Controller manages a set of Extensions and their Manifest. * When one or more extensions is permitted to be used, the callback gives all permitted extensions and their manifest. * @example * ```ts TODO: Correct this, start using builder pattern: * const controller = new UmbExtensionsApiInitializer(host, extensionRegistry, type, ['constructor argument 1', 'constructor argument '], filter?, (permitted, ctrl) => { console.log("Extension is permitted and this is the manifest: ", ctrl.manifest) })); * ``` * @class UmbExtensionsApiInitializer */ export declare class UmbExtensionsApiInitializer, ManifestTypeAsApi extends ManifestApi = ManifestType extends ManifestApi ? ManifestType : never, ControllerType extends UmbExtensionApiInitializer = UmbExtensionApiInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType> extends UmbBaseExtensionsInitializer { #private; constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry, type: ManifestTypeName | Array, constructorArguments: Array | UmbApiConstructorArgumentsMethodType | undefined, filter?: undefined | null | ((manifest: ManifestTypeAsApi) => boolean), onChange?: (permittedManifests: Array) => void, controllerAlias?: string, args?: UmbExtensionsApiInitializerArgs); protected _createController(manifest: ManifestTypeAsApi): ControllerType; destroy(): void; }