import type ExtensionPointRegistry from "../api/registry/ExtensionPointRegistry.ts"; import type ExtensionRegistry from "../api/registry/ExtensionRegistry.ts"; import type PluginManager from "../api/plugin_manager/PluginManager.ts"; import type ExtensionInfo from "../api/plugin_manager/ExtensionInfo.ts"; import type PluginRepository from "../api/plugin_repository/PluginRepository.ts"; /** * Default implementation of a {@link PluginManager}. */ export default class DefaultPluginManager implements PluginManager { private readonly pluginRepositories; private readonly extensionPointRegistry; private readonly extensionRegistry; private readonly pluginRepositoriesByExtensionHandle; /** * Constructor configures the instance using the optionally specified * {@link ExtensionPointRegistry} and {@link ExtensionRegistry}. * * @param pluginRepositories One or more {@link PluginRepository} instances to use for plugin discovery. * @param extensionPointRegistry optional {@link ExtensionPointRegistry} implementation. Defaults to using * InMemoryExtensionPointRegistry. * @param extensionRegistry optional {@link ExtensionRegistry} implementation. Defaults to using * InMemoryExtensionRegistry */ constructor(pluginRepositories: Array, extensionPointRegistry?: ExtensionPointRegistry, extensionRegistry?: ExtensionRegistry); registerExtensions(extensionPoint: string): Promise; getRegisteredExtensions(extensionPoint: string): Promise>; /** * @inheritDoc * * @throws *Error* if the specified Extension Handle is unknown */ instantiate(extensionHandle: string, hostData?: Map): Promise; } //# sourceMappingURL=DefaultPluginManager.d.ts.map