/** * SMI-1189: Scanner * * Main scanning logic for imported skills. */ import { SecurityScanner } from '../../security/index.js'; import type { AllowlistMatcher, ImportedSkill, SkillScanResult, ScannerCliOptions } from './types.js'; import { type TrustScorerConfig } from './trust-scorer.js'; /** * Scanner configuration */ export interface ScannerConfig { /** Default input file path */ defaultInput: string; /** Output directory for reports */ outputDir: string; /** Scanner options */ scannerOptions: { riskThreshold: number; }; /** Trust scorer config */ trustConfig: TrustScorerConfig; /** Progress logging interval */ progressInterval: number; /** SMI-4396: Path to the version-controlled allowlist file. */ allowlistPath: string; } /** Default scanner configuration */ export declare const DEFAULT_CONFIG: ScannerConfig; /** * Scan a single skill and return the result * * SMI-4396: accepts an optional AllowlistMatcher. Findings whose * (skillId, type, message/location) match a non-expired allowlist entry are * excluded from the quarantine decision. severityCategory still reflects * the raw findings so the security report preserves audit visibility. * * @param skill - The skill to scan * @param scanner - The security scanner instance * @param config - Trust scorer configuration * @param allowlist - Optional per-skill allowlist (SMI-4396) * @returns The scan result */ export declare function scanSkill(skill: ImportedSkill, scanner: SecurityScanner, config?: TrustScorerConfig, allowlist?: AllowlistMatcher): SkillScanResult; /** Default CLI options */ export declare const DEFAULT_CLI_OPTIONS: ScannerCliOptions; /** * Scan all imported skills * * @param inputPath - Path to the imported skills JSON file * @param config - Scanner configuration * @param cliOptions - CLI options for output control */ export declare function scanImportedSkills(inputPath: string, config?: ScannerConfig, cliOptions?: Partial): Promise; //# sourceMappingURL=scanner.d.ts.map