/**
 * Cross-File Taint Analysis — Detects taint flows that cross file boundaries.
 *
 * Scenario 1: Source in file A, sink in imported function (file B).
 *   File A has req.params.id (tainted), calls getUser(id) imported from B.
 *   B's getUser has param 'id' reaching a sql_query sink.
 *
 * Scenario 2: Imported function returns user data.
 *   File A calls getUserInput() from B which returns req.body.
 *   File A then passes the return value to a local sink.
 *
 * Constraint: One level of imports only. No transitive chasing (A->B->C).
 */
import type { ScanFile } from '../shared/types';
import type { ModuleGraph } from './module-graph';
import type { FunctionProfileMap } from './function-classifier';
import type { FileTaintAnalysis, UserInputSource, TaintSink } from './taint-types';
export interface CrossFileTaintPath {
    sourceFile: string;
    source: UserInputSource;
    sinkFile: string;
    sink: TaintSink;
    importLink: {
        fromFile: string;
        toFile: string;
        symbolName: string;
        paramName?: string;
        callLine: number;
    };
    sanitised: boolean;
    confidence: 'high' | 'medium' | 'low';
}
/**
 * Analyze cross-file taint paths across the project.
 *
 * For each file with taint sources, check if tainted variables flow into
 * calls to imported functions that reach dangerous sinks.
 */
export declare function analyzeCrossFileTaint(files: ScanFile[], graph: ModuleGraph, functionProfiles: FunctionProfileMap, fileTaintAnalyses: Map<string, FileTaintAnalysis>): CrossFileTaintPath[];
//# sourceMappingURL=cross-file-taint.d.ts.map