// Copyright (c) 2026 defconxt. All rights reserved.
// Licensed under AGPL-3.0 — see LICENSE file for details.
// NERF is a trademark of defconxt.

/**
 * NERF Pipeline — Security scanning, analysis, and reporting.
 *
 * Public API surface for the pipeline module. All downstream consumers
 * (gateway, API, MCP) import from this barrel.
 */

// Scanner — foundational data classes and subprocess runners
export {
  ScanDomain,
  PROFILE_CONFIGS,
  EXT_TAG_MAP,
  Finding,
  ScanResult,
  CrawlResult,
  PipelineResult,
  ScanProfile,
  NucleiRunner,
  KatanaRunner,
  ScanPipeline,
  whichSync,
} from './scanner.js';

// Async scanner — Promise-based wrappers with concurrency control
export {
  AsyncScanStatus,
  AsyncFinding,
  AsyncScanResult,
  AsyncNucleiRunner,
  AsyncKatanaRunner,
  AsyncScanManager,
  Semaphore,
  asyncScan,
  severityForProfile,
} from './async-scanner.js';

// Binary analysis — ELF parsing, security features, ROP gadgets
export {
  ELF_MAGIC,
  SHF_WRITE,
  SHF_ALLOC,
  SHF_EXECINSTR,
  readU16,
  readU32,
  readU64,
  readStr,
  ELFSection,
  ELFSymbol,
  SecurityFeatures,
  ELFAnalysis,
  ELFParser,
  FormatStringFinding,
  FormatStringScanner,
  ROPGadget,
  ROPScanner,
} from './binary-analysis.js';

// XSS scanner — static pattern detection
export {
  SINK_PATTERNS,
  SOURCE_PATTERNS,
  TEMPLATE_SINKS,
  SCANNABLE_EXTENSIONS,
  XSSFinding,
  XSSScanResult,
  XSSScanner,
} from './xss-scanner.js';

// DOM XSS scanner — dynamic Playwright-based detection
export {
  XSS_PAYLOADS,
  URL_PAYLOADS,
  DOMXSSFinding,
  DOMXSSScanResult,
  DOMXSSScanner,
} from './dom-xss-scanner.js';

// OSINT — intelligence gathering (domains, IPs, usernames, emails, archives)
export {
  isPrivateIP,
  OSINTResult,
  DomainIntelligence,
  IPIntelligence,
  PeopleIntelligence,
  ArchiveIntelligence,
  DocumentMetadata,
  OSINTPipeline,
} from './osint.js';

// SARIF — Static Analysis Results Interchange Format
export {
  SARIF_VERSION,
  SARIF_SCHEMA,
  severityToLevel,
  severityScore,
  SarifRule,
  SarifResult,
  SarifReport,
} from './sarif.js';

// GitHub Actions — diff analysis, formatting, workflow generation
export {
  _getVersion,
  RiskLevel,
  SecretType,
  SEV_EMOJI,
  SecretFinding,
  DiffAnalysis,
  PRReviewResult,
  SecurityDiffAnalyzer,
  FindingFormatter,
  PRSecurityReview,
  WorkflowGenerator,
} from './github-actions.js';

// Template manager — Nuclei template management
export {
  DEFAULT_TEMPLATE_DIR,
  TemplateInfo,
  TemplateCollection,
  NucleiTemplateManager,
} from './template-manager.js';

// Pipeline hooks — before/after callbacks for pipeline stages
export {
  HookEvent,
  HookContext,
  PipelineHooks,
  hookableStage,
  timingHook,
  severityFilterHook,
  thresholdAbortHook,
} from './hooks.js';
