export type YarHTMLTagName = keyof React.JSX.IntrinsicElements | string; export enum YarEffectTag { Update, Placement, Deletion, } export type YarProps = { children: YarElement[]; [key: string]: unknown; }; export interface YarElement { type: YarHTMLTagName; props: YarProps; } export interface YarFiber extends YarElement { parent: null | YarFiber; dom: null | HTMLElement | Text; child: null | YarFiber; sibling: null | YarFiber; alternate?: null | YarFiber; effectTag: null | YarEffectTag; }