import { EnzymeExtension, IExtensionManager, LifecycleHooks, IExtensionEventEmitter } from './types.js'; /** * Extension manager with priority-based execution and error isolation * * @example * ```ts * const manager = new EnzymeExtensionManager(); * * manager.register({ * name: 'logging', * priority: ExtensionPriorities.HIGH, * hooks: { * beforeOperation: async (ctx) => { * console.log(`[${ctx.operation}] Starting...`); * }, * }, * }); * * await manager.executeHooks('beforeOperation', { * operation: 'fetchUser', * args: { userId: 123 }, * // ... * }); * ``` */ export declare class EnzymeExtensionManager implements IExtensionManager { private extensions; private sortedExtensions; private eventEmitter; private config; constructor(config?: Record); /** * Get event emitter for inter-extension communication */ get events(): IExtensionEventEmitter; /** * Register an extension * Extensions are automatically sorted by priority after registration */ register(extension: EnzymeExtension): void; /** * Unregister an extension by name */ unregister(name: string): boolean; /** * Get all registered extensions (sorted by priority) */ getExtensions(): EnzymeExtension[]; /** * Get extension by name */ getExtension(name: string): EnzymeExtension | undefined; /** * Check if extension is registered */ hasExtension(name: string): boolean; /** * Get extension count */ get count(): number; /** * List all extension names */ list(): string[]; /** * Clear all extensions */ clear(): void; /** * Execute lifecycle hooks with priority-based ordering * Higher priority extensions execute first * Errors are isolated per extension */ executeHooks(hookName: keyof LifecycleHooks, context: unknown): Promise; /** * Execute mount hooks (React lifecycle) */ executeMountHooks(component?: string, data?: Record): Promise; /** * Execute unmount hooks (React lifecycle) */ executeUnmountHooks(component?: string, data?: Record): Promise; /** * Execute beforeOperation hooks with cancellation support */ executeBeforeOperationHooks(operation: string, args: TArgs, metadata?: Record): Promise<{ args: TArgs; cancelled: boolean; }>; /** * Execute afterOperation hooks with result modification */ executeAfterOperationHooks(operation: string, args: TArgs, result: TResult, duration: number, metadata?: Record): Promise; /** * Get all component enhancers from extensions */ getComponentEnhancers(): Map>; /** * Get all custom hooks from extensions */ getComponentHooks(): Record; /** * Get all state selectors from extensions */ getStateSelectors(): Record; /** * Get all state action creators from extensions */ getStateActions(): Record; /** * Get combined initial state from all extensions */ getCombinedInitialState(): Record; /** * Get all API endpoints from extensions */ getApiEndpoints(): Record; /** * Get all API interceptors from extensions */ getApiInterceptors(): Array<{ name: string; interceptor: unknown; }>; /** * Get all client methods from extensions */ getClientMethods(): Record; /** * Sort extensions by priority (higher priority first) */ private sortExtensionsByPriority; /** * Execute a hook safely with error handling */ private executeHookSafely; /** * Handle extension errors with error hook */ private handleExtensionError; } /** * Create a new extension manager * * @example * ```ts * const manager = createExtensionManager({ debug: true }); * ``` */ export declare function createExtensionManager(config?: Record): EnzymeExtensionManager; /** * Create a pre-configured extension manager with common extensions */ export declare function createDefaultExtensionManager(config?: Record): EnzymeExtensionManager;