import { ModuleManager } from '@govflanders/vl-widget-module'; import { PluginContext } from './context'; import { Plugin } from './plugin'; /** * Interface which describes information about a plugin extension path. */ export interface PluginExtensionPathInfo { /** * Holds the plugin extension identifier. * * @var {string} */ id: string; /** * Holds the nested plugin extension identifier if applicable. * * @var {string|null} */ nested: string | null; } /** * Parse the plugin extension path information from given identifier. * * @param {string} id * A plugin extension identifier. * * @return {PluginExtensionPathInfo} * An object which represents information about a plugin extension path. */ export declare function extractPluginExtensionPathInfo(id: string): PluginExtensionPathInfo; /** * Resolve a nested plugin extension using unsafe resolving method. * * @param {T} pluginExtension * Plugin extension for which a possible nested extension should be resolved. * @param {string|null} id * Identifier for nested plugin extension. Use null to disable nested resolving. * * @return {T} * The resolved plugin extension. */ export declare function resolveNestedPluginExtensionUnsafe(pluginExtension: T, id: string | null): T; /** * Resolve a nested plugin extension using safe resolving method. * * @param {T} pluginExtension * Plugin extension for which a possible nested extension should be resolved. * @param {string|null} id * Identifier for nested plugin extension. Use null to disable nested resolving. * * @return {Promise} * The resolved plugin extension. */ export declare function resolveNestedPluginExtensionSafe(pluginExtension: T, id: string | null): Promise; /** * Install a plugin module. * * @param {ModuleManager} moduleManager * An object which represents a module manager. * @param {PluginContext} pluginModule * An object which represents a plugin context. * * @return {Promise} * A promise to install a plugin module. */ export declare function installPluginModule(moduleManager: ModuleManager, pluginModule: any): Promise; /** * Install a plugin context. * * @param {ModuleManager} moduleManager * An object which represents a module manager. * @param {PluginCon} pluginContext * An object which represents a plugin context. * * @return {Promise} * A promise to install a plugin module. */ export declare function installPluginContext(moduleManager: ModuleManager, pluginContext: PluginContext): Promise;