import { EventEmitter } from 'events'; import { RequestHandler } from 'express'; import type { Result } from '@iota-big3/sdk-patterns'; export interface DynamicLoaderConfig { middlewarePath?: string; configPath?: string; watchEnabled?: boolean; watchInterval?: number; hotReload?: boolean; validation?: { enabled?: boolean; timeout?: number; testRequest?: any; }; versioning?: { enabled?: boolean; maxVersions?: number; autoRollback?: boolean; }; security?: { sandbox?: boolean; allowedModules?: string[]; checksum?: boolean; }; } export interface MiddlewareDefinition { id: string; name: string; path: string; version?: string; enabled: boolean; priority?: number; config?: any; dependencies?: string[]; routes?: string[]; methods?: string[]; metadata?: Record; } export interface LoadedMiddleware { id: string; definition: MiddlewareDefinition; handler: RequestHandler; loadedAt: Date; version: string; checksum?: string; instances: number; errors: number; lastError?: Error; } export interface MiddlewareManifest { version: string; middlewares: MiddlewareDefinition[]; globalConfig?: any; loadOrder?: string[]; } export interface LoadResult { success: boolean; middleware?: LoadedMiddleware; error?: Error; rollbackVersion?: string; } export declare class DynamicMiddlewareLoader extends EventEmitter { private config; private middlewares; private versions; private manifest?; private watcher?; private app?; constructor(config?: DynamicLoaderConfig); initializeAsync(app: any): Promise; private loadManifest; private loadAllMiddlewares; loadMiddleware(definition: MiddlewareDefinition): Promise>; private loadMiddlewareHandler; private loadInSandbox; private createSafeRequire; private validateDefinition; private validateMiddlewareAsync; private applyMiddleware; private wrapHandler; private calculateChecksumAsync; private storeVersion; rollbackAsync(middlewareId: string, targetVersion?: string): Promise; private startWatching; private checkForChangesAsync; private reloadManifestAsync; private findManifestChanges; reloadMiddlewareAsync(middlewareId: string): Promise>; unloadMiddlewareAsync(middlewareId: string): Promise>; disableMiddlewareAsync(middlewareId: string): Promise; enableMiddlewareAsync(middlewareId: string): Promise; getMiddlewares(): Map; getMiddleware(middlewareId: string): LoadedMiddleware | undefined; getVersions(middlewareId: string): Map | undefined; getManifest(): MiddlewareManifest | undefined; private createMockRequest; private createMockResponse; stop(): void; } export declare function createDynamicLoader(config?: DynamicLoaderConfig): DynamicMiddlewareLoader; //# sourceMappingURL=dynamic-loader.d.ts.map