import { Goal } from "../../../api/goal/Goal";
import { ExecuteGoal } from "../../../api/goal/GoalInvocation";
import { FulfillableGoal, FulfillableGoalDetails } from "../../../api/goal/GoalWithFulfillment";
import { SoftwareDeliveryMachine } from "../../../api/machine/SoftwareDeliveryMachine";
/**
 * Properties to customize [[Tag]] goal.
 */
export interface TagRegistration {
    /** Set fulfillment goal executor. */
    goalExecutor?: ExecuteGoal;
    /** Name for fulfillment. */
    name?: string;
}
/**
 * Goal that performs project tagging using Git.  If no fulfillment is
 * added to the goal, one is added during registration that tags using
 * the goal set pre-release version as created by the [[Version]]
 * goal.
 */
export declare class Tag extends FulfillableGoal {
    constructor(goalDetailsOrUniqueName?: FulfillableGoalDetails | string, ...dependsOn: Goal[]);
    /**
     * Called by the SDM on initialization.  This function calls
     * `super.register` and adds a startup listener to the SDM.
     *
     * The startup listener registers a default goal fulfillment that
     * calles [[executeTag]] with no arguments.
     */
    register(sdm: SoftwareDeliveryMachine): void;
    /**
     * Add fulfillment to this goal.
     */
    with(registration?: TagRegistration): this;
}
//# sourceMappingURL=Tag.d.ts.map