import typing

import java.lang
import org.xml.sax

class Element(java.lang.Object):
    @typing.overload
    def getChild(self, localName: str | java.lang.String, /) -> Element: ...
    @typing.overload
    def getChild(self, uri: str | java.lang.String, localName: str | java.lang.String, /) -> Element: ...
    @typing.overload
    def requireChild(self, localName: str | java.lang.String, /) -> Element: ...
    @typing.overload
    def requireChild(self, uri: str | java.lang.String, localName: str | java.lang.String, /) -> Element: ...
    def setElementListener(self, elementListener: ElementListener, /) -> None: ...
    def setEndElementListener(self, endElementListener: EndElementListener, /) -> None: ...
    def setEndTextElementListener(self, endTextElementListener: EndTextElementListener, /) -> None: ...
    def setStartElementListener(self, startElementListener: StartElementListener, /) -> None: ...
    def setTextElementListener(self, elementListener: TextElementListener, /) -> None: ...
    def toString(self) -> str: ...

class ElementListener(EndElementListener, StartElementListener): ...

class EndElementListener(java.lang.Object):
    def end(self) -> None: ...

class EndTextElementListener(java.lang.Object):
    def end(self, arg1: str | java.lang.String, /) -> None: ...

class RootElement(Element):
    @typing.overload
    def __init__(self, localName: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, uri: str | java.lang.String, localName: str | java.lang.String, /) -> None: ...
    def getContentHandler(self) -> org.xml.sax.ContentHandler: ...

class StartElementListener(java.lang.Object):
    def start(self, arg1: org.xml.sax.Attributes, /) -> None: ...

class TextElementListener(EndTextElementListener, StartElementListener): ...
