import ts from "typescript";
import { ComponentContext } from "../types/componentExtractor.types";
export declare class ComponentExtractor {
    private sourceFile;
    private content;
    private filePath;
    private importExtractor;
    private functionExtractor;
    private typeExtractor;
    constructor(sourceFile: ts.SourceFile, content: string, filePath: string, srcDir: string, typeChecker?: ts.TypeChecker);
    /**
     * Extracts all component context from the source file
     */
    extractComponentContext(): ComponentContext;
    /**
     * Extracts individual components from the file
     */
    private extractComponents;
    /**
     * Builds a complete component definition
     */
    private buildComponentDefinition;
    /**
     * Determines if a class is a React component
     */
    private isReactClassComponent;
    /**
     * Determines component type
     */
    private determineComponentType;
    /**
     * Determines component category
     */
    private determineComponentCategory;
    /**
     * Calculates component complexity
     */
    private calculateComponentComplexity;
    /**
     * Extracts React-specific component information
     */
    private extractReactComponentInfo;
    /**
     * Extracts hook usage information
     */
    private extractHookUsage;
    /**
     * Extracts prop definitions
     */
    private extractPropDefinitions;
    /**
     * Calculates JSX complexity
     */
    private calculateJSXComplexity;
    /**
     * Helper methods for component analysis
     */
    private isHOC;
    private isRenderProp;
    private isCompoundComponent;
    private isReactRelatedFile;
    private calculateJSXNestingDepth;
    private determineHookType;
    private determineHookComplexity;
    private extractHookDependencies;
    private determineHookPurpose;
    private buildClassComponentDefinition;
    private extractComponentStructure;
    private extractComponentDependencies;
    private extractComponentLifecycle;
    private analyzePerformance;
    private analyzeAccessibility;
    private analyzeTestability;
    private extractComponentPatterns;
    private getComponentLocation;
    private extractStateDefinitions;
    private extractContextUsage;
    private extractRefUsage;
    private extractComponentRelationships;
    private analyzeComponentPatterns;
    private analyzeComponentArchitecture;
    private calculateQualityMetrics;
    private extractProvidedValues;
    private extractConsumedValues;
    private determineRefType;
    private determineRefPurpose;
    private extractRenderedComponents;
    private extractPropRelationships;
    private generatePatternRecommendations;
    private buildComponentHierarchy;
    private determineArchitectureStructure;
    private calculateArchitectureDepth;
    private analyzeModularity;
    private complexityToNumber;
    private calculatePerformanceScore;
    private calculateMaintainabilityScore;
    private calculateReusabilityScore;
    private createEmptyReactComponentInfo;
    private createEmptyPatternAnalysis;
    private createEmptyArchitecture;
    private createEmptyQualityMetrics;
}
