import { GitProject, HandlerResult } from "@atomist/automation-client";
import { ClosedIssueWithChangelogLabel, PushWithChangelogLabel } from "../typings/types";
export declare const ChangelogTemplate = "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\nand this project adheres to [Semantic Versioning](http://semver.org/).\n\n## [0.0.0]\n";
export interface ChangelogEntry {
    category?: string;
    title: string;
    label: string;
    url: string;
    qualifiers: string[];
}
/**
 * Add entry to changelog for closed label or pull request
 * @param {ClosedIssueWithChangelogLabel.Issue} issue
 * @param {string} token
 * @returns {Promise<HandlerResult>}
 */
export declare function addChangelogEntryForClosedIssue(issue: ClosedIssueWithChangelogLabel.Issue, token: string): Promise<HandlerResult>;
/**
 * Add entry to changelog for commits
 * @param {PushWithChangelogLabel.Push} commit
 * @param {string} token
 * @returns {Promise<HandlerResult>}
 */
export declare function addChangelogEntryForCommit(push: PushWithChangelogLabel.Push, token: string): Promise<HandlerResult>;
/**
 * Read and parse the project changelog.  If the changelog has
 * reference links, this function will rewrite the file with inline
 * links.  If the project does not have a changelog, one will be
 * added.
 *
 * @param p project with changelog file, or not
 * @return an object representing the parsed changelog
 */
export declare function readChangelog(p: GitProject): Promise<any>;
export declare function addEntryToChangelog(entry: ChangelogEntry, cl: any, p: GitProject): any;
/**
 * Convert changelog object back to a string.
 *
 * @param changelog parsed changelog object
 * @return markdown formatted changelog file contents
 */
export declare function changelogToString(changelog: any): string;
/**
 * Write changelog back out to the CHANGELOG.md file
 * @param changelog
 * @param {GitProject} p
 * @returns {Promise<void>}
 */
export declare function writeChangelog(changelog: any, p: GitProject): Promise<void>;
//# sourceMappingURL=changelog.d.ts.map