import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import type { ManifestCondition, ManifestElement, ManifestWithDynamicConditions } from '../types/index.js'; import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; import type { UmbControllerHost } from '../../controller-api/index.js'; /** * This Controller manages a single Extension and its Element. * When the extension is permitted to be used, its Element will be instantiated and available for the consumer. * @example * ```ts * const controller = new UmbExtensionElementController(host, extensionRegistry, alias, (permitted, ctrl) => { console.log("Extension is permitted and this is the element: ", ctrl.component) })); * ``` * @class UmbExtensionElementController */ export declare class UmbExtensionElementInitializer = any, ExtensionInterface extends ManifestElement = ManifestType extends ManifestElement ? ManifestType : never, ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE']> extends UmbBaseExtensionInitializer { #private; /** * The component that is created for this extension. * @readonly * @type {(HTMLElement | undefined)} */ get component(): ExtensionElementInterface | undefined; get properties(): Record | undefined; set properties(newVal: Record | undefined); constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry, alias: string, onPermissionChanged: (isPermitted: boolean, controller: ControllerType) => void, defaultElement?: string); protected _conditionsAreGood(): Promise; protected _conditionsAreBad(): Promise; destroy(): void; }