import ts from "typescript";
import { FunctionContext } from "../types/functionExtractor.types";
export declare class FunctionExtractor {
    private sourceFile;
    private content;
    constructor(sourceFile: ts.SourceFile, content: string);
    /**
     * Extracts all function context from the source file
     */
    extractFunctionContext(): FunctionContext;
    /**
     * Extracts a single function definition
     */
    private extractFunction;
    /**
     * Extracts function signature
     */
    private extractSignature;
    /**
     * Extracts function parameters
     */
    private extractParameters;
    /**
     * Calculates function complexity
     */
    private calculateFunctionComplexity;
    /**
     * Calculates cyclomatic complexity
     */
    private calculateCyclomaticComplexity;
    /**
     * Calculates cognitive complexity
     */
    private calculateCognitiveComplexity;
    /**
     * Calculates lines of code for a function
     */
    private calculateLinesOfCode;
    /**
     * Calculates maximum nesting depth
     */
    private calculateNestingDepth;
    /**
     * Identifies usage patterns for a function
     */
    private identifyUsagePatterns;
    /**
     * Extracts React-specific information
     */
    private extractReactInfo;
    /**
     * Checks if function is a React hook
     */
    private isReactHook;
    /**
     * Extracts hooks used in the function
     */
    private extractHooksUsed;
    /**
     * Calculates JSX complexity
     */
    private calculateJSXComplexity;
    /**
     * Extracts prop types from function parameters
     */
    private extractPropTypes;
    /**
     * Extracts state usage information
     */
    private extractStateUsage;
    /**
     * Extracts effect usage information
     */
    private extractEffectUsage;
    /**
     * Extracts the effect block content
     */
    private extractEffectBlock;
    /**
     * Extracts side effects from function
     */
    private extractSideEffects;
    /**
     * Extracts function dependencies
     */
    private extractFunctionDependencies;
    /**
     * Extracts function calls for call graph
     */
    private extractFunctionCalls;
    /**
     * Calculates overall complexity metrics
     */
    private calculateComplexityMetrics;
    /**
     * Analyzes patterns across all functions
     */
    private analyzePatterns;
    /**
     * Helper methods
     */
    private isFunctionNode;
    private getFunctionName;
    private getFunctionKind;
    private extractGenerics;
    private isAsyncFunction;
    private isPureFunction;
    private hasExportModifier;
    private getLocation;
    private extractJSDocComment;
    private visitNode;
    private isConditionalCall;
    private isInLoop;
}
