/** * @fileoverview Security Scanner - High-level scan API * @module @nahisaho/musubix-security/variant/scanner * @trace TSK-025, REQ-SEC-VARIANT-003 * * NOTE: v3.0.11 - Simplified implementation without CodeDB dependency */ import { type DetectorOptions } from './detector.js'; import { VulnerabilityModelManager } from './model.js'; import type { ScanConfig, ScanResult } from '../types/variant.js'; /** * Scanner options */ export interface ScannerOptions { /** Scan configuration */ config?: Partial; /** Detector options */ detectorOptions?: DetectorOptions; /** Progress callback */ onProgress?: (progress: ScanProgress) => void; } /** * Scan progress */ export interface ScanProgress { /** Current phase */ phase: 'init' | 'scan' | 'analyze' | 'report'; /** Progress percentage (0-100) */ progress: number; /** Current file */ currentFile?: string; /** Message */ message: string; } /** * Security Scanner (v3.0.11 - File-based implementation) */ export declare class SecurityScanner { private config; private detector; private onProgress?; /** Model manager for vulnerability models (reserved for future use) */ readonly modelManager: VulnerabilityModelManager; constructor(options?: ScannerOptions); /** * Run full scan */ scan(targetPath: string): Promise; /** * Scan a single file */ scanFile(filePath: string): Promise; /** * Collect files to scan */ private collectFiles; /** * Check if file should be included */ private shouldIncludeFile; /** * Check if path should be excluded */ private shouldExclude; /** * Detect primary language from files */ private detectPrimaryLanguage; /** * Detect language from file path */ private detectLanguage; /** * Map extension to language */ private extToLanguage; /** * Filter findings by minimum severity */ private filterBySeverity; /** * Limit findings per rule */ private limitFindingsPerRule; /** * Create scan summary */ private createSummary; /** * Report progress */ private reportProgress; } /** * Create a security scanner instance */ export declare function createScanner(options?: ScannerOptions): SecurityScanner; //# sourceMappingURL=scanner.d.ts.map