import { ApplyFingerprint, BaseAspect, ExtractFingerprint, FP } from "../..";
import { Aspect } from "../machine/Aspect";
export interface FileFingerprint extends FP {
    data: {
        filename: string;
        content: string;
    };
}
/**
 * Create fingerprints from JSON files
 * @param {string} filenames
 * @return {ExtractFingerprint}
 */
export declare function createFileFingerprint(...filenames: string[]): ExtractFingerprint;
/**
 * Create fingerprints from JSON files
 * @param type type of the fingerprint
 * @param {(content: string) => any} canonicalize
 * @param {string} filenames
 * @return {ExtractFingerprint}
 */
export declare function createFilesFingerprint(type: string, canonicalize: (content: string) => any, ...filenames: string[]): ExtractFingerprint<FileFingerprint>;
export declare const applyFileFingerprint: ApplyFingerprint;
export declare const JsonFile: Aspect;
/**
 * Create a aspect that handles the given files
 * @return {Aspect}
 */
export declare function filesAspect(opts: {
    type: string;
    canonicalize: (content: string) => any;
} & Pick<BaseAspect<FileFingerprint>, "name" | "displayName" | "toDisplayableFingerprintName" | "toDisplayableFingerprint">, ...files: string[]): Aspect<FileFingerprint>;
