import { BaseAnalyzer } from './BaseAnalyzer';
import { ASTNode, CodeFunction, CodeClass, ImportDeclaration, ExportDeclaration, AnalysisContext, ComplexityMetrics } from './types';
/**
 * Rust AST Analyzer
 * Analyzes Rust source code using regex-based parsing
 * Handles Rust-specific constructs like traits, impls, modules, and ownership
 */
export declare class RustAnalyzer extends BaseAnalyzer {
    constructor();
    /**
     * Parse Rust source code (regex-based approach)
     */
    protected parseAST(content: string, context: AnalysisContext): Promise<any>;
    /**
     * Extract AST nodes from Rust code
     */
    protected extractNodes(ast: any, context: AnalysisContext): Promise<ASTNode[]>;
    /**
     * Extract functions from Rust code
     */
    protected extractFunctions(ast: any, context: AnalysisContext): Promise<CodeFunction[]>;
    /**
     * Extract classes (structs, enums, traits) from Rust code
     */
    protected extractClasses(ast: any, context: AnalysisContext): Promise<CodeClass[]>;
    /**
     * Extract imports (use statements) from Rust code
     */
    protected extractImports(ast: any, context: AnalysisContext): Promise<ImportDeclaration[]>;
    /**
     * Extract exports from Rust code
     */
    protected extractExports(ast: any, context: AnalysisContext): Promise<ExportDeclaration[]>;
    /**
     * Extract dependencies from Rust code
     */
    protected extractDependencies(ast: any, _context: AnalysisContext): Promise<string[]>;
    /**
     * Calculate complexity metrics for Rust code
     */
    protected calculateComplexity(ast: any, _context: AnalysisContext): Promise<ComplexityMetrics>;
    /**
     * Get parser configuration for Rust
     */
    protected getParserConfig(): any;
    /**
     * Get line number from character index
     */
    private getLineNumber;
    /**
     * Find the end of a code block
     */
    private findBlockEnd;
    /**
     * Parse Rust modules
     */
    private parseModules;
    /**
     * Parse Rust constants
     */
    private parseConstants;
    /**
     * Parse Rust static variables
     */
    private parseStatics;
    /**
     * Parse Rust function parameters
     */
    private parseRustParameters;
    /**
     * Parse Rust structs
     */
    private parseStructs;
    /**
     * Parse Rust enums
     */
    private parseEnums;
    /**
     * Parse Rust traits
     */
    private parseTraits;
    /**
     * Parse struct fields
     */
    private parseStructFields;
    /**
     * Parse tuple struct fields
     */
    private parseTupleFields;
    /**
     * Parse enum variants
     */
    private parseEnumVariants;
    /**
     * Parse trait methods
     */
    private parseTraitMethods;
    /**
     * Extract function calls from code
     */
    private extractFunctionCalls;
    /**
     * Calculate complexity for a single function
     */
    private calculateFunctionComplexity;
}
//# sourceMappingURL=RustAnalyzer.d.ts.map