/** * @fileoverview Multi-language vulnerability scanner - unified scanner for TypeScript, JavaScript, Python, PHP * @module @nahisaho/musubix-security/analysis/multi-language-scanner * @trace REQ-SEC-MULTI-001 */ import type { Vulnerability, ScanOptions, ScanResult } from '../types/index.js'; /** * Language type */ export type SupportedLanguage = 'typescript' | 'javascript' | 'python' | 'php'; /** * Multi-language scan options */ export interface MultiLanguageScanOptions extends ScanOptions { /** Languages to scan (default: all) */ languages?: SupportedLanguage[]; } /** * Multi-language scan result */ export interface MultiLanguageScanResult extends ScanResult { /** Results by language */ byLanguage: Record; } /** * Multi-language vulnerability scanner */ export declare class MultiLanguageScanner { private tsScanner; private pythonScanner; private phpScanner; constructor(); /** * Detect language from file extension */ detectLanguage(filePath: string): SupportedLanguage | null; /** * Get all supported languages */ getSupportedLanguages(): SupportedLanguage[]; /** * Get supported extensions */ getSupportedExtensions(): string[]; /** * Scan a single file */ scanFile(filePath: string): Promise; /** * Scan content with specified language * Note: TypeScript/JavaScript only supports file-based scanning via ts-morph */ scanContent(content: string, language: SupportedLanguage, filePath?: string): Vulnerability[]; /** * Scan a directory for all supported languages */ scanDirectory(rootPath: string, options?: MultiLanguageScanOptions): Promise; /** * Get rule count by language */ getRuleCountByLanguage(): Record; /** * Get total rule count */ getTotalRuleCount(): number; /** * Get CWE coverage */ getCWECoverage(): string[]; } /** * Create multi-language scanner */ export declare function createMultiLanguageScanner(): MultiLanguageScanner; //# sourceMappingURL=multi-language-scanner.d.ts.map