import typing

import java.lang
import javax.xml.transform
import org.xml.sax
import org.xml.sax.ext

class SAXResult(javax.xml.transform.Result):
    FEATURE: typing.ClassVar[str] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, handler: org.xml.sax.ContentHandler, /) -> None: ...
    def getHandler(self) -> org.xml.sax.ContentHandler: ...
    def getLexicalHandler(self) -> org.xml.sax.ext.LexicalHandler: ...
    def getSystemId(self) -> str: ...
    def setHandler(self, handler: org.xml.sax.ContentHandler, /) -> None: ...
    def setLexicalHandler(self, handler: org.xml.sax.ext.LexicalHandler, /) -> None: ...
    def setSystemId(self, systemId: str | java.lang.String, /) -> None: ...

class SAXSource(javax.xml.transform.Source):
    FEATURE: typing.ClassVar[str] = ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, inputSource: org.xml.sax.InputSource, /) -> None: ...
    @typing.overload
    def __init__(self, reader: org.xml.sax.XMLReader, inputSource: org.xml.sax.InputSource, /) -> None: ...
    def getInputSource(self) -> org.xml.sax.InputSource: ...
    def getSystemId(self) -> str: ...
    def getXMLReader(self) -> org.xml.sax.XMLReader: ...
    def setInputSource(self, inputSource: org.xml.sax.InputSource, /) -> None: ...
    def setSystemId(self, systemId: str | java.lang.String, /) -> None: ...
    def setXMLReader(self, reader: org.xml.sax.XMLReader, /) -> None: ...
    @staticmethod
    def sourceToInputSource(source: javax.xml.transform.Source, /) -> org.xml.sax.InputSource: ...

class SAXTransformerFactory(javax.xml.transform.TransformerFactory):
    FEATURE: typing.ClassVar[str] = ...
    FEATURE_XMLFILTER: typing.ClassVar[str] = ...
    def __init__(self) -> None: ...
    def newTemplatesHandler(self) -> TemplatesHandler: ...
    @typing.overload
    def newTransformerHandler(self) -> TransformerHandler: ...
    @typing.overload
    def newTransformerHandler(self, arg1: javax.xml.transform.Source, /) -> TransformerHandler: ...
    @typing.overload
    def newTransformerHandler(self, arg1: javax.xml.transform.Templates, /) -> TransformerHandler: ...
    @typing.overload
    def newXMLFilter(self, arg1: javax.xml.transform.Source, /) -> org.xml.sax.XMLFilter: ...
    @typing.overload
    def newXMLFilter(self, arg1: javax.xml.transform.Templates, /) -> org.xml.sax.XMLFilter: ...

class TemplatesHandler(org.xml.sax.ContentHandler):
    def getSystemId(self) -> str: ...
    def getTemplates(self) -> javax.xml.transform.Templates: ...
    def setSystemId(self, arg1: str | java.lang.String, /) -> None: ...

class TransformerHandler(org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.ext.LexicalHandler):
    def getSystemId(self) -> str: ...
    def getTransformer(self) -> javax.xml.transform.Transformer: ...
    def setResult(self, arg1: javax.xml.transform.Result, /) -> None: ...
    def setSystemId(self, arg1: str | java.lang.String, /) -> None: ...
