import type { LocalScanResult } from '../integrations/local-scanner.js'; export interface CycloneDXComponent { type: 'library' | 'application' | 'framework' | 'file' | 'container' | 'operating-system'; name: string; version: string; purl?: string; licenses?: Array<{ license: { id?: string; name?: string; }; }>; hashes?: Array<{ alg: string; content: string; }>; } export interface CycloneDXVulnerability { id: string; source?: { name: string; url?: string; }; ratings?: Array<{ severity: 'critical' | 'high' | 'medium' | 'low' | 'info' | 'none' | 'unknown'; method?: string; score?: number; }>; description?: string; recommendation?: string; affects?: Array<{ ref: string; }>; } export interface CycloneDXDocument { bomFormat: 'CycloneDX'; specVersion: '1.5'; serialNumber: string; version: number; metadata: { timestamp: string; tools?: Array<{ vendor: string; name: string; version: string; }>; component?: CycloneDXComponent; }; components: CycloneDXComponent[]; vulnerabilities?: CycloneDXVulnerability[]; } export interface SPDXPackage { SPDXID: string; name: string; versionInfo: string; downloadLocation: string; filesAnalyzed: boolean; licenseConcluded?: string; licenseDeclared?: string; copyrightText?: string; externalRefs?: Array<{ referenceCategory: string; referenceType: string; referenceLocator: string; }>; } export interface SPDXDocument { spdxVersion: 'SPDX-2.3'; dataLicense: 'CC0-1.0'; SPDXID: 'SPDXRef-DOCUMENT'; name: string; documentNamespace: string; creationInfo: { created: string; creators: string[]; licenseListVersion?: string; }; packages: SPDXPackage[]; relationships: Array<{ spdxElementId: string; relationshipType: string; relatedSpdxElement: string; }>; } export interface SBOMOptions { format: 'cyclonedx' | 'spdx'; includeVulnerabilities?: boolean; includeLicenses?: boolean; projectName?: string; projectVersion?: string; } export declare function generateCycloneDX(targetPath: string, scanResult?: LocalScanResult, options?: SBOMOptions): CycloneDXDocument; export declare function generateSPDX(targetPath: string, scanResult?: LocalScanResult, options?: SBOMOptions): SPDXDocument; export declare function generateSBOM(targetPath: string, scanResult?: LocalScanResult, options?: SBOMOptions): CycloneDXDocument | SPDXDocument;