/**
 * Taint Analysis Types
 *
 * All interfaces for intra-file taint tracking: source discovery,
 * taint propagation, sanitiser detection, and sink matching.
 */
export type UserInputSourceType = 'http_body' | 'http_query' | 'http_params' | 'http_headers' | 'url_search_params' | 'form_data' | 'file_upload' | 'websocket_message' | 'cli_args' | 'env_var' | 'database_result' | 'external_api';
export interface UserInputSource {
    line: number;
    expression: string;
    variable: string;
    sourceType: UserInputSourceType;
    frameworkSource?: string;
    confidence: 'high' | 'medium' | 'low';
}
export type TaintPropagationType = 'direct_assignment' | 'destructure' | 'spread' | 'function_arg' | 'template_literal' | 'string_concat' | 'array_push' | 'object_spread' | 'method_chain' | 'ternary';
export interface TaintedVariable {
    name: string;
    taintedAt: number;
    source: UserInputSource;
    propagation: TaintPropagationType;
    sanitised: boolean;
    sanitisedAt?: number;
    sanitisationMethod?: string;
    scopeDepth: number;
}
export type SinkType = 'sql_query' | 'eval' | 'exec' | 'inner_html' | 'http_request' | 'redirect' | 'file_write' | 'path_access' | 'template_render' | 'command_exec' | 'regex_constructor' | 'dynamic_import' | 'deserialization';
export interface TaintSink {
    line: number;
    expression: string;
    sinkType: SinkType;
}
export interface TaintPath {
    source: UserInputSource;
    chain: TaintedVariable[];
    sink: TaintSink;
    sanitised: boolean;
    confidence: 'high' | 'medium' | 'low';
}
export type SanitiserTarget = 'html' | 'sql' | 'command' | 'url' | 'regex' | 'path' | 'all';
export interface SanitiserInfo {
    name: string;
    line: number;
    sanitises: SanitiserTarget;
    detection: 'known_library' | 'name_heuristic' | 'type_annotation';
    library?: string;
}
export interface FileTaintAnalysis {
    filePath: string;
    sources: UserInputSource[];
    taintedVariables: TaintedVariable[];
    taintPaths: TaintPath[];
    sanitisers: SanitiserInfo[];
}
import type { ProjectContext } from './project-context';
import type { RouteMap } from './route-discovery/types';
import type { ModuleGraph } from './module-graph';
import type { CrossFileTaintPath } from './cross-file-taint';
import type { FunctionProfileMap } from './function-classifier';
import type { FileFrameworkAnalysis } from './framework-models/types';
/**
 * Unified output from all Context Engine phases.
 * Single container consumed by both scoring and AI validation.
 */
export interface ContextEngineResult {
    projectContext: ProjectContext;
    fileTaintAnalyses: Map<string, FileTaintAnalysis>;
    routeMap?: RouteMap;
    moduleGraph?: ModuleGraph;
    crossFileTaintPaths?: CrossFileTaintPath[];
    functionProfiles?: FunctionProfileMap;
    frameworkAnalyses?: Map<string, FileFrameworkAnalysis>;
}
//# sourceMappingURL=taint-types.d.ts.map