import { Options } from './Options';
export declare class CycloneDXSbomCreator {
    readonly path: string;
    readonly options?: Options | undefined;
    readonly licenseFilenames: Array<string>;
    readonly licenseContentTypes: {
        licenseContentType: string;
        fileExtension: string;
    }[];
    readonly SBOMSCHEMA: string;
    constructor(path: string, options?: Options | undefined);
    createBom(pkgInfo: any): Promise<string>;
    getPackageInfoFromReadInstalled(path?: string): Promise<any>;
    private listComponents;
    private addComponent;
    /**
     * If the author has described the module as a 'framework', the take their
     * word for it, otherwise, identify the module as a 'library'.
     */
    private determinePackageType;
    /**
     * Uses the SHA1 shasum (if Present) otherwise utilizes Subresource Integrity
     * of the package with support for multiple hashing algorithms.
     */
    private processHashes;
    /**
     * Adds a hash to component.
     */
    private addComponentHash;
    /**
     * Adds external references supported by the package format.
     */
    private addExternalReferences;
    private pushURLToExternalReferences;
    /**
     * Performs a lookup + validation of the license specified in the
     * package. If the license is a valid SPDX license ID, set the 'id'
     * of the license object, otherwise, set the 'name' of the license
     * object.
     */
    private getLicenses;
    /**
     * Tries to find a file containing the license text based on commonly
     * used naming and content types. If a candidate file is found, add
     * the text to the license text object and stop.
     */
    private addLicenseText;
    /**
     * Read the file from the given path to the license text object and includes
     * content-type attribute, if not default. Returns the license text object.
     */
    private readLicenseText;
    private parsePackageJsonName;
}
