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;
}