/** * Security Scanner Output Formatters * @module @skillsmith/core/security/scanner/SecurityScanner.formatters */ import type { ScanReport, SecurityFinding } from './types.js'; /** * SMI-1454: Generate minimal refs output for CI/CD integration * Outputs findings in a compact, machine-readable format suitable for: * - GitHub Actions annotations * - IDE problem matchers * - CI pipeline integration * * @param report - The scan report to format * @returns Array of minimal ref strings in format "file:line:severity:message" */ export declare function toMinimalRefs(report: ScanReport): string[]; /** * SMI-1454: Generate SARIF (Static Analysis Results Interchange Format) output * For integration with GitHub Code Scanning and other SARIF consumers * * @param report - The scan report to format * @returns SARIF v2.1.0 compliant output object */ export declare function toSARIF(report: ScanReport): object; /** * SMI-1454: Generate GitHub Actions annotations format * Outputs findings as GitHub Actions workflow commands for inline annotations * * @param report - The scan report to format * @returns Array of GitHub Actions annotation strings */ export declare function toGitHubAnnotations(report: ScanReport): string[]; /** * SMI-1454: Generate summary statistics * Returns a compact summary object for dashboards and reports * * @param report - The scan report to summarize * @returns Summary object with counts by severity and type */ export declare function toSummary(report: ScanReport): { skillId: string; passed: boolean; riskScore: number; totalFindings: number; bySeverity: Record; byType: Record; scanDurationMs: number; }; /** * SMI-595: translate typosquat findings into user-facing copy. * * Banned-vocabulary rule (enforced by a dedicated test, not just this * function's implementation): the strings this function returns must never * contain "homoglyph", "confusable", "skeleton", or internal ladder-step/rule * numbers — those describe the *detection method*, which means nothing to a * skill installer and could help an attacker tune around the detector. * * @param findings - Any findings array; non-typosquat findings are ignored. * @returns One user-facing string per typosquat finding, in input order. */ export declare function describeSignals(findings: SecurityFinding[]): string[]; //# sourceMappingURL=SecurityScanner.formatters.d.ts.map