import { SoftwareDeliveryMachine } from "@atomist/sdm";
import { DeliveryGoals } from "@atomist/sdm-core";
import { Aspect, PublishFingerprints } from "@atomist/sdm-pack-fingerprint";
/**
 * Aspect that can register to extract fingerprints from Atomist events
 */
export interface DeliveryAspect<GOALS extends DeliveryGoals, DATA = any> extends Aspect<DATA> {
    /**
     * Can this delivery aspect be registered given these goals
     */
    canRegister(sdm: SoftwareDeliveryMachine, goals: GOALS): boolean;
    /**
     * Cause this to emit fingerprints
     */
    register(sdm: SoftwareDeliveryMachine, deliveryGoals: GOALS, publisher: PublishFingerprints): void;
}
export declare function isDeliveryAspect(a: Aspect): a is DeliveryAspect<any>;
//# sourceMappingURL=DeliveryAspect.d.ts.map