export interface ITree { get itemCount(): number get level(): number get items(): T[] get parent(): ITree | undefined split(): void; insert(item: T): ITree; remove(item: T): boolean; }