UNPKG

@tehreet/conduit

Version:

LLM API gateway with intelligent routing, robust process management, and health monitoring

94 lines 2.44 kB
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<void>; /** * Load plugins from directory (backward compatibility) */ loadPluginsFromDirectory(pluginDir: string): Promise<void>; /** * 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<RoutingContext>; /** * Execute afterRouting hooks */ afterRouting(decision: RoutingDecision): Promise<RoutingDecision>; /** * Execute custom routing */ customRouting(context: RoutingContext): Promise<RoutingDecision | null>; /** * Get health status from all plugins */ getHealthStatus(): Promise<Record<string, HealthStatus>>; /** * Validate plugin configurations */ validateConfigs(): Record<string, boolean>; /** * Execute generic hook */ executeHook<T>(hookName: string, data: T): Promise<T>; /** * 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<void>; } //# sourceMappingURL=EnhancedPluginManager.d.ts.map