import { PluginContext } from './context'; import { PluginHost } from './host'; import { Plugin } from './plugin'; /** * Interface which describes a plugin factory. */ export interface PluginFactory { /** * Create a plugin for given context and host. * * @param {PluginHost} pluginHost * An object which represents the plugin host. * @param {PluginContext} pluginContext * An object which represents the plugin context. * * @return {Promise} * A promise to create the plugin instance. */ createPluginInstance(pluginHost: PluginHost, pluginContext: PluginContext): Promise; }