from __future__ import annotations
from typing import Any, Protocol, runtime_checkable

@runtime_checkable
class XElement(XNode, Protocol):
    def getAttribute(self, name: str) -> str: ...
    def getAttributeNode(self, name: str) -> XAttr: ...
    def getAttributeNodeNS(self, namespaceURI: str, localName: str) -> XAttr: ...
    def getAttributeNS(self, namespaceURI: str, localName: str) -> str: ...
    def getElementsByTagName(self, name: str) -> XNodeList: ...
    def getElementsByTagNameNS(self, namespaceURI: str, localName: str) -> XNodeList: ...
    def getTagName(self) -> str: ...
    def hasAttribute(self, name: str) -> bool: ...
    def hasAttributeNS(self, namespaceURI: str, localName: str) -> bool: ...
