/**
 * 🚀 Lazy Dependency Loader for AI-Debug
 *
 * Optimizes performance by loading heavy dependencies only when needed
 * Reduces startup time and memory usage significantly
 */
import { EventEmitter } from 'events';
export interface LazyDependency<T> {
    isLoaded: boolean;
    load(): Promise<T>;
    get(): T | null;
    unload(): void;
}
export declare class LazyDependencyLoader extends EventEmitter {
    private dependencies;
    private loadingPromises;
    /**
     * Register a lazy-loaded dependency
     */
    register<T>(name: string, loader: () => Promise<T>): LazyDependency<T>;
    /**
     * Get a registered dependency (will auto-load if needed)
     */
    get<T>(name: string): Promise<T>;
    /**
     * Get dependency synchronously (returns null if not loaded)
     */
    getSync<T>(name: string): T | null;
    /**
     * Check if dependency is loaded
     */
    isLoaded(name: string): boolean;
    /**
     * Preload specific dependencies
     */
    preload(names: string[]): Promise<void>;
    /**
     * Unload unused dependencies to free memory
     */
    cleanup(): void;
    /**
     * Get loading statistics
     */
    getStats(): {
        total: number;
        loaded: number;
        loading: number;
        unloaded: number;
    };
}
/**
 * Global lazy dependency manager
 */
export declare const lazyLoader: LazyDependencyLoader;
/**
 * Common heavy dependencies registration
 */
export declare function registerCommonDependencies(): void;
/**
 * Framework-specific lazy loading
 */
export declare function registerFrameworkDependencies(frameworks: string[]): void;
//# sourceMappingURL=lazy-dependency-loader.d.ts.map