# Path: draftjs_exporter/types.py
# HTML = str


from typing import Any, Dict, Optional
from draftjs_exporter.types import HTML, Element, Tag


Attr = Dict[str, str]


class DOMEngine(object):
    """
    Parent class of all DOM implementations.
    """

    @staticmethod
    def create_tag(type_: Tag, attr: Optional[Attr] = None) -> Any:
        """
        Creates and returns a tree node of the given type and attributes.
        """
        raise NotImplementedError

    @staticmethod

# Path: draftjs_exporter/types.py
# HTML = str


# Path: draftjs_exporter/engines/base.py
from typing import Any, Dict, Optional
from draftjs_exporter.types import HTML, Element, Tag



Attr = Dict[str, str]


class DOMEngine(object):
    """
    Parent class of all DOM implementations.
    """

    @staticmethod
    def create_tag(type_: Tag, attr: Optional[Attr] = None) -> Any:
        """
        Creates and returns a tree node of the given type and attributes.
        """
        raise NotImplementedError

    @staticmethod

    def parse_html(markup: HTML) -> Element: