/** * Plugin Manager - Central orchestrator for the Recoder.xyz plugin system */ import { EventEmitter } from 'events'; import { PluginMetadata, PluginInstallOptions, PluginSearchOptions, PluginSearchResult, PluginUpdate } from '../plugin-sdk/types'; import { LoadedPlugin, LifecycleConfig } from '../plugin-sdk/lifecycle'; import { RegistryConfig } from '../marketplace/registry'; export interface PluginManagerConfig { pluginsDirectory: string; dataDirectory: string; registryUrl: string; lifecycle: LifecycleConfig; registry: RegistryConfig; enableAnalytics: boolean; maxConcurrentInstalls: number; } export declare class PluginManager extends EventEmitter { private config; private lifecycleManager; private registry; private installer; private ratingSystem; private eventBus; private analyticsTracker?; private installingPlugins; constructor(config: PluginManagerConfig); /** * Initialize the plugin system */ initialize(): Promise; /** * Search for plugins in the marketplace */ searchPlugins(options: PluginSearchOptions): Promise; /** * Get detailed information about a plugin */ getPluginInfo(pluginId: string): Promise; /** * Get trending plugins */ getTrendingPlugins(limit?: number): Promise; /** * Get featured plugins */ getFeaturedPlugins(limit?: number): Promise; /** * Install a plugin from the marketplace */ installPlugin(pluginId: string, options?: PluginInstallOptions): Promise; /** * Uninstall a plugin */ uninstallPlugin(pluginId: string): Promise; /** * Update a plugin to the latest version */ updatePlugin(pluginId: string): Promise; /** * Check for available updates */ checkForUpdates(installedPlugins?: Array<{ id: string; version: string; }>): Promise; /** * Activate a plugin */ activatePlugin(pluginId: string): Promise; /** * Deactivate a plugin */ deactivatePlugin(pluginId: string): Promise; /** * Reload a plugin */ reloadPlugin(pluginId: string): Promise; /** * Get list of installed plugins */ getInstalledPlugins(): LoadedPlugin[]; /** * Get list of active plugins */ getActivePlugins(): LoadedPlugin[]; /** * Get plugin by ID */ getPlugin(pluginId: string): LoadedPlugin | undefined; /** * Check if a plugin is installed */ isPluginInstalled(pluginId: string): boolean; /** * Check if a plugin is active */ isPluginActive(pluginId: string): boolean; /** * Update plugin configuration */ updatePluginConfig(pluginId: string, config: Record): Promise; /** * Get plugin configuration */ getPluginConfig(pluginId: string): Record | undefined; /** * Handle plugin events */ handlePluginEvent(pluginId: string, event: string, data?: any): Promise; /** * Broadcast event to all active plugins */ broadcastEvent(event: string, data?: any): Promise; /** * Rate a plugin */ ratePlugin(pluginId: string, rating: number, review?: string): Promise; /** * Get plugin ratings */ getPluginRatings(pluginId: string): Promise; /** * Get plugin analytics */ getPluginAnalytics(pluginId: string): any; /** * Get overall system statistics */ getSystemStatistics(): Promise; /** * Shutdown the plugin system */ shutdown(): Promise; private discoverInstalledPlugins; private autoActivatePlugins; private setupEventHandlers; private createRegistryStorage; private createRatingStorage; private createUserService; private createInstallerStorage; } //# sourceMappingURL=plugin-manager.d.ts.map