/**
 * Conventional Commits parser
 *
 * Implements the spec at https://www.conventionalcommits.org/en/v1.0.0/
 * with pragmatic extensions commonly used in the Node.js / TypeScript ecosystem.
 */
export type CommitType = 'feat' | 'fix' | 'perf' | 'refactor' | 'docs' | 'test' | 'build' | 'ci' | 'chore' | 'style' | 'revert';
export interface ParsedCommit {
    type: CommitType;
    scope?: string;
    subject: string;
    body?: string;
    footer?: string;
    breaking: boolean;
    references: string[];
    hash: string;
    author: string;
    date: string;
}
/**
 * Parse a single commit line in the form:
 *   <hash>|<author>|<date>|<subject>
 *
 * The subject is split off the first `|` delimiter so commit bodies
 * (which may contain pipes) are preserved as-is.
 */
export declare function parseCommitLine(line: string): ParsedCommit | null;
/**
 * Parse a multi-line git log blob into a list of commits.
 *
 * Two input formats are supported:
 *
 * 1. **New format** (produced by `getCommitsSince()`):
 *
 *        <hash>\n<author>\n<date>\n<subject>\n<body>\n<<__RK_COMMIT_END__>>\n
 *
 * 2. **Legacy format** (also accepted for backwards compatibility):
 *
 *        commit <hash>\n<author>|<date>|<subject>\n<body>\ncommit <hash>\n...
 */
export declare function parseCommits(log: string): ParsedCommit[];
export interface ClassifiedCommits {
    features: ParsedCommit[];
    fixes: ParsedCommit[];
    performance: ParsedCommit[];
    refactors: ParsedCommit[];
    documentation: ParsedCommit[];
    tests: ParsedCommit[];
    build: ParsedCommit[];
    ci: ParsedCommit[];
    chores: ParsedCommit[];
    breaking: ParsedCommit[];
    unknown: ParsedCommit[];
}
export declare function classifyCommits(commits: ParsedCommit[]): ClassifiedCommits;
//# sourceMappingURL=commits.d.ts.map