UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

80 lines 2.75 kB
/** * Менеджер плагинов для CSElement * Обеспечивает загрузку, управление и выполнение плагинов */ import { EventEmitter } from 'eventemitter3'; import { CSElementPlugin, PluginManager as IPluginManager, LifecycleHooks, MiddlewareContext, MiddlewareConfig, PluginInfo, PluginOptions } from '../types/plugin-interfaces'; export declare class PluginManager extends EventEmitter implements IPluginManager { private plugins; private pluginOptions; private hooks; private advancedMiddleware; private CSElementClass; constructor(); /** * Инициализация хуков */ private initializeHooks; /** * Установить ссылку на класс CSElement */ setCSElementClass(CSElementClass: any): void; /** * Установить плагин */ use(plugin: CSElementPlugin, options?: PluginOptions): void; /** * Удалить плагин */ uninstall(pluginName: string): boolean; /** * Получить установленный плагин */ getPlugin(name: string): CSElementPlugin | null; /** * Получить все установленные плагины */ getPlugins(): CSElementPlugin[]; /** * Проверить, установлен ли плагин */ hasPlugin(name: string): boolean; /** * Получить информацию о всех плагинах */ getPluginInfo(): PluginInfo[]; /** * Добавить хук жизненного цикла */ addHook(hookName: keyof LifecycleHooks, callback: Function): void; /** * Удалить хук жизненного цикла */ removeHook(hookName: keyof LifecycleHooks, callback: Function): void; /** * Добавить middleware с конфигурацией */ addAdvancedMiddleware(operation: string, config: MiddlewareConfig): void; /** * Выполнить хуки жизненного цикла */ executeHooks(hookName: keyof LifecycleHooks, ...args: any[]): Promise<void>; /** * Выполнить middleware цепочку */ executeMiddleware(context: MiddlewareContext, operation: () => Promise<any>): Promise<any>; /** * Очистить все плагины (для тестирования) */ clear(): void; /** * Получить статистику плагинов */ getStats(): { totalPlugins: number; totalHooks: number; totalMiddleware: number; pluginsByType: Record<string, number>; }; } //# sourceMappingURL=PluginManager.d.ts.map