import * as t from '@babel/types'; import type { SecurityIssue } from '../../types.js'; export type Severity = SecurityIssue['severity']; export interface SinkDefinition { name: string; kind: 'sql' | 'command' | 'innerHTML' | 'fs' | 'mongo'; matches: (call: t.CallExpression) => boolean; argIndex: number; severity: Severity; message: string; fix: string; owaspCategory?: string; cweId?: string; } export interface SinkMatchResult { match: boolean; argIndex: number; } export declare const SQL_SINKS: SinkDefinition[]; export declare const COMMAND_SINKS: SinkDefinition[]; export declare const MONGO_SINKS: SinkDefinition[]; export declare const FS_SINKS: SinkDefinition[]; export declare const INNERHTML_SINKS: SinkDefinition[]; export declare function matchSink(call: t.CallExpression, def: SinkDefinition): SinkMatchResult; export declare function matchInnerHtmlAssignment(node: t.AssignmentExpression): t.Expression | null;