import { IAuthor } from './Author.js';
import Entity, { Compare, IEntity, Priority } from './Entity.js';
export declare enum CommitChangeType {
    BreakingChanges = 1,
    Deprecated = 2,
    Important = 4,
    Default = 8
}
export interface ICommit extends IEntity {
    readonly accents: string[];
    readonly author: IAuthor;
    readonly body: readonly string[];
    changeType: CommitChangeType;
    readonly scope?: string;
    readonly shortName: string;
    subject: string;
    readonly timestamp: number;
    readonly type: string;
    readonly url: string;
    accent(text: string): void;
    is(status: CommitChangeType): boolean;
    replacement(value: string, position: number): void;
}
export interface ICommitOptions {
    author: IAuthor;
    body?: string;
    hash: string;
    headline: string;
    timestamp: number;
    url: string;
}
export default class Commit extends Entity implements ICommit {
    #private;
    readonly author: IAuthor;
    readonly body: readonly string[];
    readonly scope?: string;
    readonly timestamp: number;
    readonly url: string;
    constructor({ hash, timestamp, headline, body, url, author }: ICommitOptions);
    static compare(a: ICommit, b: ICommit): Compare;
    get accents(): string[];
    get type(): string;
    get priority(): Priority;
    get subject(): string;
    get changeType(): CommitChangeType;
    set changeType(type: CommitChangeType);
    get shortName(): string;
    accent(text: string): void;
    is(type: CommitChangeType): boolean;
    replacement(value: string, position: number): void;
}
