/** * @fileoverview Taint analysis engine * @module @nahisaho/musubix-security/analysis/taint-analyzer * @trace REQ-SEC-TAINT-001, REQ-SEC-TAINT-002, REQ-SEC-TAINT-003, REQ-SEC-TAINT-004 */ import type { TaintSource, TaintSink, TaintResult, TaintAnalysisOptions } from '../types/index.js'; /** * Reset counters (for testing) */ export declare function resetTaintCounters(): void; /** * Taint analyzer engine */ export declare class TaintAnalyzer { private parser; private fileScanner; private options; private sourcePatterns; private sinkPatterns; constructor(options?: TaintAnalysisOptions); /** * Analyze a single file for taint issues */ analyzeFile(filePath: string): { sources: TaintSource[]; sinks: TaintSink[]; }; /** * Find taint sources in a source file */ private findSources; /** * Find taint sinks in a source file */ private findSinks; /** * Trace taint flow from sources to sinks (simplified) * Note: Full interprocedural analysis would require more sophisticated data flow analysis */ private tracePaths; /** * Check if source and sink could be connected */ private checkConnection; /** * Check if there's sanitization between source and sink */ private checkSanitization; /** * Build flow steps between source and sink */ private buildFlowSteps; /** * Analyze a directory for taint issues */ analyze(rootPath: string): Promise; } /** * Create a taint analyzer */ export declare function createTaintAnalyzer(options?: TaintAnalysisOptions): TaintAnalyzer; //# sourceMappingURL=taint-analyzer.d.ts.map