import type { ExternalAnalyzerResults } from "audit-tools/shared"; interface SemgrepDataflowTraceNode { location?: { path?: string; }; } interface SemgrepResult { check_id?: string; path?: string; start?: { line?: number; }; end?: { line?: number; }; extra?: { severity?: string; message?: string; metadata?: { category?: string; }; dataflow_trace?: { taint_source?: SemgrepDataflowTraceNode | SemgrepDataflowTraceNode[]; intermediate_vars?: SemgrepDataflowTraceNode[]; taint_sink?: SemgrepDataflowTraceNode | SemgrepDataflowTraceNode[]; }; }; } interface SemgrepJson { results?: SemgrepResult[]; } export declare function normalizeSemgrepJson(input: SemgrepJson): ExternalAnalyzerResults; /** * Normalize semgrep's broader `--dataflow-traces` output into language-neutral * graph edges: one `taint-source → taint-sink` edge per result whose source and * sink resolve to distinct file paths. Intermediate vars are not edges (they are * within-file steps). Malformed / missing traces degrade to an empty edge list; * `normalizeGenericExternalEdges` dedupes + sorts so output is deterministic. */ export declare function normalizeSemgrepDataflowJson(input: SemgrepJson): ExternalAnalyzerResults; export {}; //# sourceMappingURL=semgrep.d.ts.map