/**
 * 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 '../types';
import type { ProgressCallback } from '../index';
import type { MiddlewareAuthConfig } from '../utils/middleware-detector';
import { type AuthHelperContext } from '../utils/auth-helper-detector';
import type { FileAuthImports } from '../utils/imported-auth-detector';
import { type TierStats } from '../tiers';
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>;
    /** Tier breakdown of deduped findings */
    tiers: TierStats;
    /** 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-antipatterns';
export { detectFrameworkIssues } from './framework-checks';
export { detectAIFingerprints } from './ai-fingerprinting';
export { detectDataExposure } from './data-exposure';
export { detectBYOKPatterns } from './byok-patterns';
export { detectAIPromptHygiene } from './ai-prompt-hygiene';
export { detectAIExecutionSinks } from './ai-execution-sinks';
export { detectAIAgentTools } from './ai-agent-tools';
export { detectRAGSafetyIssues } from './ai-rag-safety';
export { detectAIEndpointProtection } from './ai-endpoint-protection';
export { detectAISchemaValidation } from './ai-schema-validation';
export { detectAIPackageHallucination } from './ai-package-hallucination';
export { detectMCPSecurity } from './ai-mcp-security';
export { detectModelSupplyChain } from './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