/**
 * Taint source/sink matcher
 *
 * Matches method calls and annotations against taint configurations.
 */
import type { CallInfo, TypeInfo, TaintSource, TaintSink, Taint, SupportedLanguage } from '../types/index.js';
import type { TaintConfig, SinkPattern } from '../types/config.js';
import type { TypeHierarchyResolver } from '../resolution/type-hierarchy.js';
/**
 * Analyze code for taint sources, sinks, and sanitizers.
 *
 * When `code` is provided, each emitted TaintSource/TaintSink is annotated with
 * its trimmed source-line text in the `code` field. Consumers (LLM enrichment
 * pipelines, SARIF reporters) can then render the offending line without
 * re-reading the file.
 */
export declare function analyzeTaint(calls: CallInfo[], types: TypeInfo[], config?: TaintConfig, typeHierarchy?: TypeHierarchyResolver, language?: SupportedLanguage, code?: string): Taint;
/**
 * Attach trimmed source-line text to each TaintSource / TaintSink at its
 * recorded line. Idempotent — only fills `code` when missing. Used by passes
 * that emit sources/sinks outside of `analyzeTaint()` (e.g. LanguageSourcesPass).
 */
export declare function attachSourceLineCode(sources: TaintSource[], sinks: TaintSink[], code: string): void;
/**
 * Check if a variable at a given position flows to a dangerous sink argument.
 */
export declare function isInDangerousPosition(argPosition: number, pattern: SinkPattern): boolean;
//# sourceMappingURL=taint-matcher.d.ts.map