/**
 * Scanner Aggregator
 *
 * Orchestrates all deterministic scanners and aggregates results.
 * Runs scanners in parallel for performance.
 *
 * @module scanners
 */
export * from "./types.js";
export { runDependencyAudit, checkNpmAvailable } from "./dependencies.js";
export { runTypeScriptAnalysis, calculateTypeCoverage } from "./typescript.js";
export { runSecretsScanner, checkGitleaksAvailable } from "./secrets.js";
export { runSemgrep, checkSemgrepAvailable, generateSupabaseRules } from "./semgrep.js";
export { runBandit, checkBanditAvailable, detectPython } from "./bandit.js";
export { runGosec, checkGosecAvailable, detectGo } from "./gosec.js";
export { runTrivy, checkTrivyAvailable, detectIaC } from "./trivy.js";
export { runEslint, checkEslintAvailable, detectEslint } from "./eslint.js";
export { runBrakeman, checkBrakemanAvailable, detectRails } from "./brakeman.js";
export { runBinaryAnalysis, checkBinaryAnalysisAvailable, detectNativeModules } from "./binary-analysis.js";
export { runMemorySafetyAnalysis, checkCppcheckAvailable, checkCargoGeigerAvailable, detectUnsafeLanguages } from "./memory-safety.js";
export { runRaceConditionAnalysis } from "./race-condition.js";
export { runHealthcareScanner, isHealthcareProject } from "./healthcare.js";
export { runTfsec, runCheckov, runTerraformScanners, checkTfsecAvailable, checkCheckovAvailable, detectTerraform } from "./terraform.js";
export { runSpectral, runOpenAPIScan, checkSpectralAvailable, findOpenAPISpecs, detectOpenAPI } from "./openapi.js";
export { runCargoAudit, runClippy, runRustScanners, checkCargoAuditAvailable, checkClippyAvailable, detectRust } from "./rust.js";
export { runNuclei, runDASTScan, runQuickDASTScan, checkNucleiAvailable, generateDASTReport, formatDASTReport } from "./dast.js";
export { runDetection, runDetectionWithCustomRules, listAvailableRules, getDetectionCategories, getBuiltinRules, BUILTIN_RULES, type DetectionRule, type DetectionResult, type DetectionMatch, type DetectionContext, } from "./detection/index.js";
import type { AggregatedScanResult, ScannerOptions, ScannerResult, ScannerType } from "./types.js";
import type { Severity } from "../certification/types.js";
/**
 * Detected project languages and technologies
 */
export interface ProjectLanguages {
    javascript: boolean;
    python: boolean;
    go: boolean;
    ruby: boolean;
    java: boolean;
    docker: boolean;
    terraform: boolean;
}
/**
 * Run all enabled scanners and aggregate results
 */
export declare function runAllScanners(projectPath: string, options?: ScannerOptions): Promise<AggregatedScanResult>;
/**
 * Run Vaspera proprietary detection engine as a scanner
 */
export declare function runDetectionScanner(projectPath: string, options?: {
    timeout?: number;
    customRulesDir?: string;
}): Promise<ScannerResult>;
/**
 * Detect if project uses JavaScript/TypeScript
 */
export declare function detectJavaScript(projectPath: string): Promise<boolean>;
/**
 * Detect if project uses Ruby
 */
export declare function detectRuby(projectPath: string): Promise<boolean>;
/**
 * Detect if project uses Java
 */
export declare function detectJava(projectPath: string): Promise<boolean>;
/**
 * Detect if project uses Docker
 */
export declare function detectDocker(projectPath: string): Promise<boolean>;
/**
 * Detect all project languages and technologies
 */
export declare function detectProjectLanguages(projectPath: string): Promise<ProjectLanguages>;
/**
 * Run all scanners with automatic language detection
 *
 * Automatically enables language-specific scanners based on project files:
 * - JavaScript/TypeScript → npm-audit, tsc, eslint
 * - Python → bandit
 * - Go → gosec
 * - Ruby → brakeman (when implemented)
 * - Docker/Terraform → trivy
 *
 * Always runs: semgrep, gitleaks (if available)
 */
export declare function runAllScannersWithAutoDetect(projectPath: string, options?: {
    timeout?: number;
    semgrepRulesDir?: string;
    /** Override auto-detection - force enable specific scanners */
    forceEnable?: ScannerType[];
    /** Override auto-detection - force disable specific scanners */
    forceDisable?: ScannerType[];
}): Promise<AggregatedScanResult & {
    detectedLanguages: ProjectLanguages;
}>;
/**
 * Check which scanners are available
 */
export declare function checkScannersAvailable(): Promise<Record<ScannerType, {
    available: boolean;
    version?: string;
    error?: string;
}>>;
/**
 * Get installation commands for missing scanners
 */
export declare function getScannerInstallCommands(): Record<ScannerType, {
    name: string;
    description: string;
    installCommands: {
        macos: string;
        linux: string;
        windows: string;
        npm?: string;
        pip?: string;
    };
    documentation: string;
}>;
/**
 * Convert aggregated scanner results to certification findings format
 */
export declare function scannerFindingsToCertificationFindings(scanResult: AggregatedScanResult): Array<{
    id: string;
    severity: Severity;
    category: string;
    file?: string;
    line?: number;
    description: string;
    evidence: string;
    confidence: 100;
    scanner_source: ScannerType;
    scanner_rule_id: string;
}>;
/**
 * Generate a summary report of scanner results
 */
export declare function generateScannerSummary(result: AggregatedScanResult): string;
//# sourceMappingURL=index.d.ts.map