import { GitProject } from "@atomist/automation-client/lib/project/git/GitProject";
import { ExecuteGoal } from "../../../api/goal/GoalInvocation";
import { ProgressLog } from "../../../spi/log/ProgressLog";
/**
 * Options for creating a tag.  If neither `name` or `release` are
 * truthy, a prerelease, i.e., timestamped, version tag is created.
 * If both `name` and `release` are truthy, `name` takes precedence.
 */
export interface ExecuteTagOptions {
    /**
     * Message to add to tag.  If not provided, the push after commit
     * message title is used.
     */
    message?: string;
    /** Name of tag to create. */
    name?: string;
    /**
     * If `true`, create a release semantic version tag, not a
     * prerelease version tag.
     */
    release?: boolean;
    /**
     * Semantic version build metadata to append to tag, e.g.,
     * "sdm.BUILD_NUMBER".
     */
    build?: string;
}
/**
 * Create and return an execute goal object that creates a Git tag,
 * suitable for use with the [[Tag]] goal.
 *
 * @param opts Options that determine the tag created
 * @return Success if successful, Failure otherwise
 */
export declare function executeTag(opts?: ExecuteTagOptions): ExecuteGoal;
/** [[createTag]] function arguments. */
export interface CreateGitTagOptions {
    /** Git repository project to operate on. */
    project: GitProject;
    /** Name of tag to create and push. */
    tag: string;
    /** Optional message to associate with Git tag. */
    message?: string;
    /** Optional progress log to write updates to. */
    log?: ProgressLog;
}
/**
 * Create and push a Git tag with optional message.
 *
 * @param opts Options for creating a Git tag.
 */
export declare function createGitTag(opts: CreateGitTagOptions): Promise<void>;
//# sourceMappingURL=executeTag.d.ts.map