import { Project } from "@atomist/automation-client";
import { Aspect } from "@atomist/sdm-pack-fingerprints";
/**
 * Knows how to classify projects into a unique String
 */
export interface Classifier {
    /**
     * Name of this classifier
     */
    readonly reason: string;
    /**
     * Classification this instance will return
     */
    readonly classification: string | string[];
    /**
     * Test for whether the given project meets this classification
     */
    predicate: (p: Project) => Promise<boolean>;
}
/**
 * Classify the project uniquely or otherwise
 * undefined to return no fingerprint
 */
export declare function classificationAspect(id: Pick<Aspect, "name" | "displayName" | "toDisplayableFingerprintName"> & {
    allowMulti?: boolean;
}, ...classifiers: Classifier[]): Aspect;
//# sourceMappingURL=classificationAspect.d.ts.map