import type { ChangelogType, ExecFileFn, GHChangelogEntry } from '../../types/github.js';
/**
 * Parse a conventional commit title to extract the type.
 */
export declare function parseCommitType(title: string): ChangelogType;
/**
 * Extract issue numbers referenced in a PR body (e.g., "Closes #123", "Fixes #456").
 */
export declare function extractIssueRefs(body: string): number[];
/**
 * Fetch merged PRs between two git refs using gh CLI.
 */
export declare function fetchMergedPRs(since: string, _until: string, exec?: ExecFileFn): Promise<GHChangelogEntry[]>;
/**
 * Group changelog entries by type.
 */
export declare function groupByType(entries: GHChangelogEntry[]): Partial<Record<ChangelogType, GHChangelogEntry[]>>;
/**
 * Format changelog entries as Keep a Changelog markdown.
 */
export declare function formatChangelog(entries: GHChangelogEntry[], since: string, until: string): string;
/**
 * Format changelog entries as JSON.
 */
export declare function formatChangelogJson(entries: GHChangelogEntry[]): string;
//# sourceMappingURL=changelog.d.ts.map