/**
 * Project-Aware Lazy Handler Wrapper
 * Extends the existing LazyHandlerWrapper with project-aware loading intelligence
 * Integrates with FrameworkDetector to optimize loading based on detected project stack
 */
import { LazyHandlerWrapper } from '../handlers/lazy-handler-wrapper.js';
import { BaseToolHandler } from '../handlers/base-handler.js';
import { FrameworkDetectionResult } from '../local-debug-engine/framework-detector.js';
export declare class ProjectAwareLazyHandlerWrapper extends LazyHandlerWrapper {
    private projectStrategy;
    private frameworkDetected;
    private pendingTools;
    constructor(handler: BaseToolHandler);
    /**
     * Initialize project-aware loading based on framework detection
     * Called when inject_debugging detects the framework
     */
    initializeProjectAwareLoading(frameworkResult: FrameworkDetectionResult): Promise<void>;
    /**
     * Preload tools that should be immediately available for the detected project
     */
    private preloadProjectTools;
    /**
     * Preload dependencies for a specific tool without executing it
     */
    private preloadToolDependencies;
    /**
     * Enhanced handle method with project-aware prioritization
     */
    handle(toolName: string, args: any, sessions: Map<string, any>): Promise<any>;
    /**
     * Get project-aware loading statistics
     */
    getProjectAwareStats(): {
        frameworkDetected: boolean;
        framework?: string;
        immediateToolCount: number;
        lazyToolCount: number;
        memorySavingsMB: number;
        reasoning: string;
        loadedTools: string[];
        pendingTools: string[];
    };
    /**
     * Adapt strategy based on usage patterns
     * Called periodically to optimize loading based on actual usage
     */
    adaptToUsagePatterns(): void;
    /**
     * Manual framework override for testing or special cases
     */
    overrideFramework(framework: string): void;
}
/**
 * Create a project-aware lazy-loaded version of a handler
 */
export declare function createProjectAwareLazyHandler(handler: BaseToolHandler): ProjectAwareLazyHandlerWrapper;
/**
 * Helper to integrate framework detection with project-aware loading
 * Used by CoreHandler when inject_debugging detects framework
 */
export declare class ProjectAwareLoadingCoordinator {
    private static wrappers;
    /**
     * Register a project-aware wrapper for coordination
     */
    static registerWrapper(handlerName: string, wrapper: ProjectAwareLazyHandlerWrapper): void;
    /**
     * Notify all wrappers about framework detection
     * Called by CoreHandler after framework is detected
     */
    static notifyFrameworkDetected(frameworkResult: FrameworkDetectionResult): Promise<void>;
    /**
     * Get aggregated project-aware statistics from all wrappers
     */
    static getAggregatedStats(): {
        totalWrappers: number;
        frameworkDetected: boolean;
        framework?: string;
        totalMemorySavingsMB: number;
        totalLoadedTools: number;
    };
    /**
     * Trigger adaptation for all wrappers
     */
    static adaptAllToUsagePatterns(): void;
}
//# sourceMappingURL=project-aware-lazy-handler-wrapper.d.ts.map