/**
 * Project-Aware Lazy Loading Strategy
 * Intelligently loads only tools relevant to the detected project framework
 * Saves 5-8MB memory while maintaining zero workflow delay
 */
import { FrameworkDetectionResult } from '../local-debug-engine/framework-detector.js';
export interface ProjectLoadingStrategy {
    framework: string;
    immediateTools: string[];
    lazyTools: string[];
    estimatedMemorySavingsMB: number;
    reasoning: string;
}
/**
 * Framework-to-Tools Mapping
 * Maps detected frameworks to their essential tool sets
 */
export declare const FRAMEWORK_TOOL_MAPPING: Record<string, ProjectLoadingStrategy>;
/**
 * Project-Aware Loading Strategy Manager
 * Determines optimal loading strategy based on detected framework
 */
export declare class ProjectAwareLoadingStrategy {
    private detectedFramework?;
    private currentStrategy?;
    /**
     * Analyze framework detection result and determine loading strategy
     */
    determineStrategy(frameworkResult: FrameworkDetectionResult): ProjectLoadingStrategy;
    /**
     * Get current loading strategy
     */
    getCurrentStrategy(): ProjectLoadingStrategy | undefined;
    /**
     * Check if a tool should be loaded immediately for the current project
     */
    shouldLoadImmediately(toolName: string): boolean;
    /**
     * Check if a tool should stay lazy for the current project
     */
    shouldStayLazy(toolName: string): boolean;
    /**
     * Get estimated memory savings for current strategy
     */
    getEstimatedMemorySavings(): number;
    /**
     * Get strategy reasoning for current project
     */
    getStrategyReasoning(): string;
    /**
     * Get loading statistics
     */
    getLoadingStats(): {
        framework: string;
        immediateToolCount: number;
        lazyToolCount: number;
        memorySavingsMB: number;
        reasoning: string;
    };
}
/**
 * Enhanced loading decision with usage patterns
 * Can be extended to learn from actual usage and optimize over time
 */
export declare class AdaptiveProjectAwareStrategy extends ProjectAwareLoadingStrategy {
    private usageStats;
    /**
     * Track tool usage to improve future loading decisions
     */
    trackToolUsage(toolName: string): void;
    /**
     * Get tools that should be promoted to immediate loading based on usage
     */
    getUsageBasedPromotions(): string[];
    /**
     * Adapt strategy based on actual usage patterns
     */
    adaptStrategy(): void;
}
//# sourceMappingURL=project-aware-loading-strategy.d.ts.map