import type { Validator } from '../../interfaces'; import { type Plugin, type PluginDefinition } from './plugin'; import type { PluginRepository } from './pluginRepository'; export declare class PluginRegistry { protected pluginRepository: PluginRepository; protected validator: Validator; protected baseDir: string; constructor(pluginRepository: PluginRepository, validator: Validator, baseDir?: string); loadPluginsEnabled(): Promise; /** * Load plugins from various sources */ protected loadPlugins(pluginDefinitions: PluginDefinition[]): Promise; protected resolveModulePath(definition: PluginDefinition): string; /** * Instantiate plugin using the provided definition. * This could dynamically import a module, or use a known plugin class. */ protected create(definition: PluginDefinition): Promise; }