import { Rule } from '@scandiumsys/owstra-types';
export declare class Engine {
    private onProgress?;
    private onFinding?;
    private currentFindings;
    private matcher;
    private taintAnalyzer;
    private ignoreManager;
    private workspacePath;
    private strictness;
    private stats;
    private projectContext;
    private patternCache;
    private parser;
    constructor(workspacePath: string, options?: {
        onProgress?: (percentage: number, file: string) => void;
        onFinding?: (finding: any) => void;
    });
    scan(scanPath: string, rules: Rule[], strictness?: 'low' | 'normal' | 'high', depth?: 'normal' | 'all'): Promise<{
        findingsList: any[];
        findings: number;
        filesScanned: number;
        filesIgnored: number;
        rulesRun: number;
        totalFilesFound: number;
    }>;
    cleanup(): void;
    private performIndexing;
    private scanFile;
    private shouldRunRule;
    private evaluateRule;
    private evaluateTaintRule;
    private evaluatePatternClause;
    private evaluatePatternInside;
    private getPatternNode;
    private findAnchorPattern;
    private matchSinglePattern;
    private getMatches;
    private searchPattern;
    private getActualPatternNode;
    private reportMatch;
    private mapExtensionToLanguage;
}
