/**
 * Layer 2: Structural Scan
 * Contextual analysis using variable heuristics, logic gate detection,
 * dangerous functions, risky imports, auth anti-patterns, framework checks,
 * and AI code fingerprinting
 */
import type { Vulnerability, ScanFile, CancellationToken, DetectorContext } from '../../shared/types';
import type { ProgressCallback } from '../../shared/types';
import type { MiddlewareAuthConfig } from '../../model/middleware-detector';
import { type AuthHelperContext } from '../../model/auth-helper-detector';
import type { FileAuthImports } from '../../model/imported-auth-detector';
export interface Layer2Options {
    middlewareConfig?: MiddlewareAuthConfig;
    authHelperContext?: AuthHelperContext;
    fileAuthImports?: Map<string, FileAuthImports>;
    /** Whether to exclude test files from scanning (default: true) */
    excludeTestFiles?: boolean;
    /** Whether to exclude seed files from scanning (default: true) */
    excludeSeedFiles?: boolean;
    /** Custom exclusion patterns (glob format) */
    customExclusions?: string[];
    /**
     * Detector context for context-aware detection (Phase 2b)
     * When provided, detectors can make smarter decisions based on:
     * - Project-level auth configuration
     * - Framework detection
     * - Per-file context (server vs client, test vs production)
     */
    detectorContext?: DetectorContext;
}
export interface Layer2Stats {
    /** Raw finding counts per detector (before dedupe) */
    raw: Record<string, number>;
    /** Deduped finding counts per category */
    deduped: Record<string, number>;
    /** Severity distribution of deduped findings */
    bySeverity: Record<string, number>;
    /** Findings suppressed by path exclusions */
    suppressedByPath: number;
}
export interface Layer2Result {
    vulnerabilities: Vulnerability[];
    filesScanned: number;
    duration: number;
    /** Heuristic breakdown stats for noise analysis */
    stats: Layer2Stats;
}
export declare function runLayer2Scan(files: ScanFile[], options?: Layer2Options, onProgress?: ProgressCallback, cancellationToken?: CancellationToken): Promise<Layer2Result>;
export { detectSensitiveVariables } from './variables';
export { detectLogicGates } from './logic-gates';
export { detectDangerousFunctions } from './dangerous-functions';
export { detectRiskyImports } from './risky-imports';
export { detectAuthAntipatterns } from './auth-patterns';
export { detectFrameworkIssues } from './framework-checks';
export { detectAIFingerprints } from '../ai-code/fingerprinting';
export { detectDataExposure } from './data-exposure';
export { detectBYOKPatterns } from '../ai-code/byok-patterns';
export { detectAIPromptHygiene } from '../ai-code/prompt-hygiene';
export { detectAIExecutionSinks } from '../ai-code/execution-sinks';
export { detectAIAgentTools } from '../ai-code/agent-tools';
export { detectRAGSafetyIssues } from '../ai-code/rag-safety';
export { detectAIEndpointProtection } from '../ai-code/endpoint-protection';
export { detectAISchemaValidation } from '../ai-code/schema-validation';
export { detectAIPackageHallucination } from '../ai-code/package-hallucination';
export { detectMCPSecurity } from '../ai-code/mcp-security';
export { detectModelSupplyChain } from '../ai-code/model-supply-chain';
export { detectSecurityHeaders } from './security-headers';
export { detectSSRFPatterns } from './ssrf-detection';
export { detectLogInjection } from './log-injection';
export { detectXXEPatterns } from './xxe-detection';
//# sourceMappingURL=index.d.ts.map