import type { RecordContext } from '@servicenow/sdk-build-core'; export declare class SBOMBuilder { /** * The set of package.json files that are used to generate the SBOM. * @private */ private packageJsonFiles; /** * The package.json of the SDK build plugins. This is used to generate the tool component in the SBOM. */ private toolPkgJsonDefault; /** * Add a package.json file to the set of package.json files that are used to generate the SBOM for the application. * @param file the path to the package.json file */ addPackageJson(file: string, content: string): void; /** * Generate a CycloneDX SBOM for the application. * @param context the build context */ generateSBOM(context: RecordContext): string; /** * Helper method to get the JSON needed to build the tool component for the @servicenow/sdk-build-plugins package. * @param context the build context * @private */ getSdkInfo(context: RecordContext): { name: string; version: string; author: string; }; /** * Helper method to generate a package url from a component and register it on the component. No idea why the base * component builder doesn't do this automatically. * @param component the component to register the package url on * @param purlFactory the package url factory */ private registerPackageUrlOnComponent; /** * Add external references to the root component that are retrieved from common Jenkins environment variables. * @param metadata the bom metadata reference * @private */ private addExternalReferences; }