import { FinalUserConfig } from "../../utils/config.cts";
import { MaybePromise } from "../../utils/types.cts";
import { BumpResult } from "./bump.cts";
import type { ParserOptions, WriterOptions } from "conventional-changelog-core";
export interface ReleaseChangelogFileContent {
  header?: string;
  body?: string;
  footer?: string;
}
export interface ReleaseChangelogConfig {
  filePath: string;
  filePathResolve: (params: {
    finalUserConfig: FinalUserConfig;
  }) => MaybePromise<string>;
  fileRead: (params: {
    finalUserConfig: FinalUserConfig;
  }) => MaybePromise<ReleaseChangelogFileContent>;
  fileWriteDisable?: boolean;
  fileWrite: (params: {
    finalUserConfig: FinalUserConfig;
    changelogRes: ReleaseChangelogFileContent;
  }) => MaybePromise<void>;
  logAddChangesetDisable?: boolean;
  scopeNoWriteDisable?: boolean;
  genParserOpts?: () => MaybePromise<ParserOptions>;
  genWriterOpts?: () => MaybePromise<WriterOptions>;
  header?: string;
  footer?: string;
}
export declare const ReleaseChangelogConfigDefault: ReleaseChangelogConfig;
export declare const changelogContentParser: (content: string) => ReleaseChangelogFileContent;
export declare const changelogContentStringify: (content: ReleaseChangelogFileContent) => string;
export declare const changelog: (params: {
  finalUserConfig: FinalUserConfig;
  bumpRes: BumpResult;
}) => Promise<ReleaseChangelogFileContent>;