import * as parser from '@babel/parser';
import * as t from '@babel/types';
import { Rule } from '../rule';
import { CategoryType, CodeFinding, SeverityLevel } from '../../types';
/**
 * Rule to detect unsafe use of eval() and similar functions
 */
export declare class UnsafeEvalRule extends Rule {
    readonly id = "security-unsafe-eval";
    readonly name = "Unsafe Eval Usage";
    readonly description = "Detects potentially dangerous use of eval() and similar functions";
    readonly category = CategoryType.Security;
    readonly defaultSeverity = SeverityLevel.Critical;
    readonly requiresAST = true;
    private readonly dangerousFunctions;
    /**
     * Apply the rule to the given code
     *
     * @param code - Source code
     * @param ast - Parsed AST
     * @param filePath - Path to the file
     * @returns Array of findings
     */
    apply(code: string, ast: parser.ParseResult<t.File>, filePath: string): CodeFinding[];
    /**
     * Generate a suggestion for replacing eval
     *
     * @param code - Original code
     * @returns Suggested code
     */
    protected generateSuggestion(_code: string): string;
    /**
     * Generate a suggestion for replacing other dangerous functions
     *
     * @param functionName - Name of the dangerous function
     * @param code - Original code
     * @returns Suggested code
     */
    protected generateAlternativeSuggestion(functionName: string, _code: string): string;
}
