package me.eater.threedom.dom import me.eater.threedom.event.Event import me.eater.threedom.event.EventDispatcher import kotlin.reflect.KClass interface IDocument : EventDispatcher, INodeContainer { fun > createNode(nodeType: KClass): T fun deleteNode(refNode: INode<*>) fun addEventListener(eventName: String, refNode: INode<*>, block: (Event) -> Unit) } inline fun > IDocument.createNode() = createNode(T::class)