import { TreeIndex } from './TreeIndex'; /** * A node in a Gedcom file. */ export interface TreeNode { /** * The Gedcom tag of this node. Usually in uppercase, possibly starting with an underscore. * The root is the only node for which the tag is null. */ tag: string | null; /** * An optional pointer, used to reference this node elsewhere. Starts and ends with the @ symbol and contains an uppercase identifier. */ pointer: string | null; /** * An optional string value. Can be any string. */ value: string | null; /** * Absolute node index in source file, namely the line number minus one. * The CONT and CONC pseudo-tags are included in the count, hence possibly introducing gaps in the indices. */ indexSource: number; /** * Node index in the output tree, relative to the parent. */ indexRelative: number; /** * This node's children nodes. */ children: TreeNode[]; /** * The index for this node, if computed. * It can be safely serialized as it does not contain any reference, but rather indices (represented as integers). */ _index?: TreeIndex; }