import * as React from 'react'; interface GitCliffAuthor { name: string; email: string; timestamp: number; } interface GitCliffRemote { username?: string | null; pr_title?: string | null; pr_number?: number | null; pr_labels?: string[]; is_first_time?: boolean; } interface GitCliffCommit { id: string; message: string; body: string | null; group: string | null; breaking: boolean; scope: string | null; author: GitCliffAuthor; remote?: GitCliffRemote | null; github?: GitCliffRemote | null; } interface GitCliffRelease { version: string | null; timestamp: number | null; commits: GitCliffCommit[]; } interface ChangelogTimelineProps extends React.ComponentProps<"div"> { releases: GitCliffRelease[]; /** * Allowed commit groups to display. * @default ["Features", "Bug Fixes", "Performance"] */ allowedGroups?: string[]; /** * Maximum number of commits to show per group per release before collapsing. * @default 8 */ maxCommitsPerRelease?: number; /** * GitHub repository owner (e.g. "chitranklabs"). Used to build links if remote metadata is partial. */ githubOwner?: string; /** * GitHub repository name (e.g. "monoline-ui"). Used to build links if remote metadata is partial. */ githubRepo?: string; /** * Whether to show commit hashes. * @default true */ showCommitHash?: boolean; /** * Whether to show the author details (username and link). * @default true */ showAuthor?: boolean; } interface ChangelogReleaseProps extends React.ComponentProps<"div"> { release: GitCliffRelease; allowedGroups: string[]; maxCommitsPerRelease: number; githubOwner?: string; githubRepo?: string; showCommitHash: boolean; showAuthor: boolean; } interface ChangelogGroupProps extends React.ComponentProps<"div"> { groupName: string; commits: GitCliffCommit[]; maxCommitsPerRelease: number; githubOwner?: string; githubRepo?: string; showCommitHash: boolean; showAuthor: boolean; } interface ChangelogCommitProps extends React.ComponentProps<"li"> { commit: GitCliffCommit; githubOwner?: string; githubRepo?: string; showCommitHash: boolean; showAuthor: boolean; } declare function ChangelogCommit({ commit, githubOwner, githubRepo, showCommitHash, showAuthor, className, ...props }: ChangelogCommitProps): React.JSX.Element; declare namespace ChangelogCommit { var displayName: string; } declare function ChangelogGroup({ groupName, commits, maxCommitsPerRelease, githubOwner, githubRepo, showCommitHash, showAuthor, className, ...props }: ChangelogGroupProps): React.JSX.Element | null; declare namespace ChangelogGroup { var displayName: string; } declare function ChangelogRelease({ release, allowedGroups, maxCommitsPerRelease, githubOwner, githubRepo, showCommitHash, showAuthor, className, ...props }: ChangelogReleaseProps): React.JSX.Element | null; declare namespace ChangelogRelease { var displayName: string; } declare function ChangelogTimeline$1({ releases, allowedGroups, maxCommitsPerRelease, githubOwner, githubRepo, showCommitHash, showAuthor, className, ...props }: ChangelogTimelineProps): React.JSX.Element; declare namespace ChangelogTimeline$1 { var displayName: string; } interface GenerateRssOptions { /** * Title of the RSS feed channel (e.g. "monoline-ui Changelog"). */ title: string; /** * Description of the feed channel. */ description: string; /** * Canonical root site URL (e.g. "https://monolineui.chitrankagnihotri.com"). */ siteUrl: string; /** * Path to the changelog web page. * @default "/docs/changelog" */ changelogPath?: string; /** * Parsed git-cliff releases dataset. */ releases: GitCliffRelease[]; /** * Feed language code. * @default "en-us" */ language?: string; } /** * Generate a standard RSS 2.0 / Atom XML feed string from a list of GitCliff releases. */ declare function generateChangelogRss({ title, description, siteUrl, changelogPath, releases, language, }: GenerateRssOptions): string; /** * Filter and normalize raw git-cliff JSON output: * - Omits null unreleased versions * - Truncates commit IDs to 7-character short SHAs * - Strips automated version bump noise */ declare function compactGitCliffReleases(releases: GitCliffRelease[]): GitCliffRelease[]; /** * @module ChangelogTimeline * Component to read and render standard conventional-commit changelogs. */ declare const ChangelogTimeline: typeof ChangelogTimeline$1 & { displayName: string; Release: typeof ChangelogRelease; Group: typeof ChangelogGroup; Commit: typeof ChangelogCommit; }; export { ChangelogCommit, type ChangelogCommitProps, ChangelogGroup, type ChangelogGroupProps, ChangelogRelease, type ChangelogReleaseProps, ChangelogTimeline, type ChangelogTimelineProps, type GenerateRssOptions, type GitCliffAuthor, type GitCliffCommit, type GitCliffRelease, type GitCliffRemote, compactGitCliffReleases, generateChangelogRss };