/**
 * EnhancementAgent Implementation
 *
 * Specialized sub-agent for iterative component design refinement.
 * Focuses on enhancing single React components through user prompts,
 * maintaining design consistency, and extracting design tokens.
 */
import { ComponentValidation, DesignTokens, SubAgent } from "../interfaces/SubAgent";
export declare class EnhancementAgent implements SubAgent<EnhancementInput, EnhancementOutput> {
    name: string;
    description: string;
    personality: string;
    llmProvider: string;
    expertise: string[];
    private tokenExtractor;
    private validator;
    constructor();
    run(input: EnhancementInput): Promise<EnhancementOutput>;
    validate(input: EnhancementInput): Promise<boolean>;
    getStatus(): Promise<{
        name: string;
        status: "idle" | "running" | "completed" | "error";
        lastRun?: Date;
        executionTime?: number;
        errorCount: number;
        successCount: number;
    }>;
    private analyzeComponent;
    private generateEnhancement;
    /**
     * Clarify the user's freeform request into a precise, unambiguous instruction.
     * Encourages symmetric behavior (e.g., if increment changes, consider decrement implications)
     * but preserves the rule of minimal change unless explicitly requested.
     */
    private clarifyUserRequest;
    private buildEnhancementPrompt;
    private postProcessComponent;
    private detectComponentType;
    private assessComplexity;
    private extractDependencies;
    private extractDesignPatterns;
    private assessAccessibility;
    private assessPerformance;
    private hasStateManagement;
    private hasSideEffects;
    private hasProps;
    private extractComponentName;
    private generateSuggestions;
    private diffComponents;
    private generateBasicEnhancement;
}
export interface EnhancementInput {
    currentComponent: string;
    userPrompt: string;
    designContext: DesignContext;
    constraints: {
        maxDependencies: number;
        targetFramework: "react" | "next";
        uiLibrary: "shadcn" | "custom";
    };
}
export interface EnhancementOutput {
    enhancedComponent: string;
    originalComponent: string;
    designTokens: DesignTokens;
    changes: EnhancementChanges;
    validation: ComponentValidation;
    suggestions: EnhancementSuggestions;
    analysis: {
        originalAnalysis: ComponentAnalysis;
        enhancedAnalysis: ComponentAnalysis;
    };
    promptUsed?: {
        system: string;
        composed: string;
        clarified?: string;
    };
    rawOutput?: string;
    warning?: string;
}
export interface ComponentAnalysis {
    type: string;
    complexity: "simple" | "medium" | "complex";
    dependencies: string[];
    designPatterns: string[];
    accessibility: number;
    performance: number;
    linesOfCode: number;
    hasState: boolean;
    hasEffects: boolean;
    hasProps: boolean;
}
export interface DesignContext {
    colors: string[];
    spacing: string;
    typography: string;
    interactions: string[];
}
export interface EnhancementChanges {
    addedLines: Array<{
        line: number;
        content: string;
    }>;
    removedLines: Array<{
        line: number;
        content: string;
    }>;
    modifiedLines: Array<{
        line: number;
        original: string;
        enhanced: string;
    }>;
    totalChanges: number;
}
export interface EnhancementSuggestions {
    accessibility: string[];
    performance: string[];
    design: string[];
    functionality: string[];
}
//# sourceMappingURL=EnhancementAgent.d.ts.map