import type { UmbApiConstructorArgumentsMethodType } from '../functions/types.js'; import type { UmbApi } from '../models/api.interface.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import type { ManifestApi, ManifestCondition } 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 API instance. * When the extension is permitted to be used, its API will be instantiated and available for the consumer. * @example * ```ts * const controller = new UmbExtensionApiController(host, extensionRegistry, alias, [], (permitted, ctrl) => { ctrl.api.helloWorld() })); * ``` * @class UmbExtensionApiController */ export declare class UmbExtensionApiInitializer = any, ExtensionApiInterface extends UmbApi = ManifestType extends ManifestApi ? NonNullable : UmbApi> extends UmbBaseExtensionInitializer { #private; /** * The api that is created for this extension. * @readonly * @type {(class | undefined)} */ get api(): ExtensionApiInterface | undefined; /** * The props that are passed to the class. * @type {Record} * @memberof UmbExtensionApiController * @example * ```ts * const controller = new UmbExtensionApiController(host, extensionRegistry, alias, [], onPermissionChanged); * controller.props = { foo: 'bar' }; * ``` * Is equivalent to: * ```ts * controller.component.foo = 'bar'; * ``` */ constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry, alias: string, constructorArguments: Array | UmbApiConstructorArgumentsMethodType | undefined, onPermissionChanged?: (isPermitted: boolean, controller: ControllerType) => void); protected _conditionsAreGood(): Promise; protected _conditionsAreBad(): Promise; destroy(): void; }