import type { BasePlugin } from './base/base'; /** * Gets registered plugins' names in the following order: * 1) Plugins registered with a defined priority attribute, in the ascending order of priority. * 2) Plugins registered without a defined priority attribute, in the registration order. * * @returns {string[]} */ export declare function getPluginsNames(): string[]; /** * Open map of plugin name string literals to their class constructor types. * Augmented by `src/plugins/index.ts` for all built-in plugins. * Third-party packages can augment this interface to enable type inference for custom plugins. */ export interface PluginClassMap { } /** * Gets registered plugin's class based on the given name. * * @param {string} pluginName Plugin's name. * @returns {BasePlugin} */ export declare function getPlugin(pluginName: K): PluginClassMap[K] | undefined; export declare function getPlugin(pluginName: string): typeof BasePlugin | undefined; /** * Checks if the plugin under the name is already registered. * * @param {string} pluginName Plugin's name. * @returns {boolean} */ export declare function hasPlugin(pluginName: string): boolean; /** * Registers plugin under the given name only once. * * @param {string|Function} pluginName The plugin name or plugin class. * @param {Function} [pluginClass] The plugin class. * @param {number} [priority] The plugin priority. */ export declare function registerPlugin(pluginName: string | Function, pluginClass?: Function, priority?: number): void;