import { ApplyFingerprint, ExtractFingerprint, FP } from "../..";
import { Aspect, DiffSummaryFingerprint } from "../machine/Aspect";
/**
 * [lib, version]
 */
export declare type NpmDepData = string[];
/**
 * Construct an npmdep fingerprint from the given library and version
 * @param {string} lib
 * @param {string} version
 * @return {FP}
 */
export declare function createNpmDepFingerprint(lib: string, version: string): FP<NpmDepData>;
export declare function constructNpmDepsFingerprintName(lib: string): string;
/**
 * Return the library name in its natural form - e.g. "lodash" or "@types/lodash" or "@atomist/sdm"
 * @param {string} fingerprintName
 * @return {string | undefined}
 */
export declare function deconstructNpmDepsFingerprintName(fingerprintName: string): string | undefined;
export declare const createNpmDepsFingerprints: ExtractFingerprint<FP<NpmDepData>>;
export declare const createNpmCoordinatesFingerprint: ExtractFingerprint;
export declare const applyNpmDepsFingerprint: ApplyFingerprint<FP<NpmDepData>>;
export declare const diffNpmDepsFingerprints: DiffSummaryFingerprint;
export declare const diffNpmCoordinatesFingerprints: DiffSummaryFingerprint;
/**
 * Aspect emitting 0 or more npm dependencies fingerprints.
 */
export declare const NpmDeps: Aspect<FP<NpmDepData>>;
export declare const NpmCoordinates: Aspect;
