/**
* Dynamic Adapter Loader
*
* Loads enterprise adapters conditionally based on feature flags and dependencies
* Provides fallback mechanisms and graceful degradation
*/
///
import { EventEmitter } from "events";
export interface AdapterSpec {
name: string;
key: string;
modulePath: string;
className: string;
dependencies: string[];
featureFlag: string;
fallback?: AdapterSpec;
required: boolean;
experimental?: boolean;
}
export interface LoadedAdapter {
spec: AdapterSpec;
instance: any;
loadTime: number;
loadedAt: Date;
status: "loaded" | "failed" | "fallback";
error?: string;
}
export declare class DynamicAdapterLoader extends EventEmitter {
private logger;
private loadedAdapters;
private adapterSpecs;
private loadingPromises;
constructor();
/**
* Setup adapter specifications
*/
private setupAdapterSpecs;
/**
* Load an adapter by key
*/
loadAdapter(key: string, forceReload?: boolean): Promise;
/**
* Perform the actual adapter loading
*/
private performLoad;
/**
* Load fallback adapter
*/
private loadFallback;
/**
* Check if dependencies are available
*/
private checkDependencies;
/**
* Load all enabled adapters
*/
loadEnabledAdapters(): Promise