/**
 * Tool Dependency Manager
 * Addresses Flutter feedback: "Tool interdependencies aren't clearly documented"
 * Provides clear prerequisites, workflow guidance, and dependency validation
 */
export interface ToolDependency {
    toolName: string;
    dependencies: {
        required: string[];
        optional: string[];
        conflicting: string[];
    };
    prerequisites: {
        sessionState: Array<{
            property: string;
            value: any;
            description: string;
        }>;
        framework: string[];
        configuration: Array<{
            setting: string;
            value: any;
            description: string;
            command?: string;
        }>;
    };
    workflow: {
        phase: string;
        description: string;
        estimatedTime: number;
        nextSuggestedTools: string[];
    };
    commonIssues: Array<{
        issue: string;
        cause: string;
        solution: string;
        preventionTip: string;
    }>;
}
export interface WorkflowValidation {
    isValid: boolean;
    missingDependencies: string[];
    missingPrerequisites: Array<{
        type: 'session' | 'framework' | 'configuration';
        requirement: string;
        current: any;
        expected: any;
        howToFix: string;
    }>;
    warnings: string[];
    recommendations: string[];
    estimatedSetupTime: number;
}
export declare class ToolDependencyManager {
    private dependencies;
    constructor();
    /**
     * Validate if a tool can be used given current session state
     * Addresses: "Tools seem to expect specific Flutter app states that weren't documented"
     */
    validateToolUsage(toolName: string, sessionState: any, completedTools?: string[]): WorkflowValidation;
    /**
     * Get recommended workflow for a specific debugging goal
     * Addresses: "Suggest logical tool sequences"
     */
    getWorkflowForGoal(goal: string, framework?: string): {
        title: string;
        description: string;
        steps: Array<{
            step: number;
            tool: string;
            purpose: string;
            estimatedTime: number;
            prerequisites: string[];
            validations: string[];
        }>;
        totalEstimatedTime: number;
        alternatives: Array<{
            condition: string;
            alternativeSteps: string[];
        }>;
    };
    /**
     * Generate tool usage documentation with dependencies
     * Addresses: "Clear indication of which tools require others to work"
     */
    generateToolDocumentation(toolName: string): {
        overview: string;
        dependencies: {
            required: Array<{
                tool: string;
                reason: string;
            }>;
            optional: Array<{
                tool: string;
                benefit: string;
            }>;
            conflicting: Array<{
                tool: string;
                reason: string;
            }>;
        };
        prerequisites: {
            session: Array<{
                requirement: string;
                howToCheck: string;
                howToFix: string;
            }>;
            framework: Array<{
                framework: string;
                version?: string;
                notes: string;
            }>;
            configuration: Array<{
                setting: string;
                value: any;
                command: string;
                why: string;
            }>;
        };
        workflow: {
            phase: string;
            beforeThis: string[];
            afterThis: string[];
            timeToRun: number;
        };
        troubleshooting: Array<{
            problem: string;
            likelyCause: string;
            solution: string;
            prevention: string;
        }>;
    } | null;
    /**
     * Initialize comprehensive tool dependencies based on user feedback
     */
    private initializeToolDependencies;
    /**
     * Get workflow templates for different debugging goals
     */
    private getWorkflowTemplates;
    private getDefaultWorkflow;
    private getNestedProperty;
    private getDependencyReason;
    private getOptionalBenefit;
    private getConflictReason;
}
//# sourceMappingURL=tool-dependency-manager.d.ts.map