import * as E from 'fp-ts/Either';
import * as KeepAChangelog from 'keep-a-changelog';
import { Semver } from 'keep-a-changelog/types/src/deps';
import * as Version from '../core/Version';
export interface Changelog extends KeepAChangelog.Changelog {
    releases: CustomRelease[];
    addRelease(release: CustomRelease): this;
    findRelease(version?: Semver | string): CustomRelease | undefined;
    tagName(release: CustomRelease): string;
}
export declare type Release = KeepAChangelog.Release;
export declare type Change = KeepAChangelog.Change;
declare class CustomRelease extends KeepAChangelog.Release {
    constructor(version?: Semver | string, date?: Date | string, description?: string);
    improved(change: Change): this;
    toString(changelog?: Changelog): string;
}
export declare const parse: (content: string) => Changelog;
export declare const parseFromFile: (changelogFile: string) => Promise<Changelog>;
export declare const update: (content: string, version: Version.Version) => string;
export declare const updateFromFile: (changelogFile: string, version: Version.Version) => Promise<void>;
export declare const checkVersion: (content: string, version: Version.Version) => E.Either<string, boolean>;
export declare const checkVersionFromFile: (changelogFile: string, version: Version.Version) => Promise<boolean>;
export {};
//# sourceMappingURL=Changelog.d.ts.map