import { EventEmitter } from 'events'; import { ConduitPlugin, PluginConfig, RoutingContext, RoutingDecision, HealthStatus } from '../types'; /** * Enhanced plugin manager with lifecycle hooks and health monitoring */ export declare class PluginManager extends EventEmitter { private plugins; private pluginConfigs; /** * Load plugins from configuration */ loadPlugins(configs: PluginConfig[]): Promise; /** * Load plugins from directory (backward compatibility) */ loadPluginsFromDirectory(pluginDir: string): Promise; /** * Load a single plugin from configuration */ private loadPlugin; /** * Load a builtin plugin from the conduit package */ private loadBuiltinPlugin; /** * Load plugin from file */ private loadPluginFromFile; /** * Load plugin file (backward compatibility) */ private loadPluginFile; /** * Register a plugin with lifecycle management */ private registerPlugin; /** * Unregister a plugin */ private unregisterPlugin; /** * Execute beforeRouting hooks */ beforeRouting(context: RoutingContext): Promise; /** * Execute afterRouting hooks */ afterRouting(decision: RoutingDecision): Promise; /** * Execute custom routing */ customRouting(context: RoutingContext): Promise; /** * Get health status from all plugins */ getHealthStatus(): Promise>; /** * Validate plugin configurations */ validateConfigs(): Record; /** * Execute generic hook */ executeHook(hookName: string, data: T): Promise; /** * Get registered plugins */ getRegisteredPlugins(): string[]; /** * Get plugin by name */ getPlugin(name: string): ConduitPlugin | undefined; /** * Get plugin configuration */ getPluginConfig(name: string): PluginConfig | undefined; /** * Get plugin count */ getPluginCount(): number; /** * Check if plugin is loaded */ hasPlugin(name: string): boolean; /** * Validate plugin interface */ private isValidPlugin; /** * Cleanup all plugins */ cleanup(): Promise; } //# sourceMappingURL=EnhancedPluginManager.d.ts.map