/**
 * @module
 *
 * Immutable value object representing a single graph node backed by a
 * Git commit pointing to the empty tree.
 */
/** Input data for constructing a GraphNode. */
interface GraphNodeData {
    sha: string;
    message: string;
    author?: string;
    date?: string;
    parents?: string[];
}
/**
 * Immutable domain entity representing a node in the graph.
 *
 * Each GraphNode corresponds to a Git commit pointing to the Empty Tree.
 * Instances are frozen after construction to ensure immutability.
 */
export default class GraphNode {
    /** Commit SHA */
    readonly sha: string;
    /** Node message/data */
    readonly message: string;
    /** Author name */
    readonly author: string | undefined;
    /** Commit date */
    readonly date: string | undefined;
    /** Array of parent SHAs */
    readonly parents: readonly string[];
    /**
     * Creates a new immutable GraphNode.
     */
    constructor({ sha, message, author, date, parents }: GraphNodeData);
}
export {};
