import typing

import java
import java.io
import java.lang
import java.util

class ErrorListener(java.lang.Object):
    def error(self, arg1: TransformerException, /) -> None: ...
    def fatalError(self, arg1: TransformerException, /) -> None: ...
    def warning(self, arg1: TransformerException, /) -> None: ...

class OutputKeys(java.lang.Object):
    CDATA_SECTION_ELEMENTS: typing.ClassVar[str] = ...
    DOCTYPE_PUBLIC: typing.ClassVar[str] = ...
    DOCTYPE_SYSTEM: typing.ClassVar[str] = ...
    ENCODING: typing.ClassVar[str] = ...
    INDENT: typing.ClassVar[str] = ...
    MEDIA_TYPE: typing.ClassVar[str] = ...
    METHOD: typing.ClassVar[str] = ...
    OMIT_XML_DECLARATION: typing.ClassVar[str] = ...
    STANDALONE: typing.ClassVar[str] = ...
    VERSION: typing.ClassVar[str] = ...

class Result(java.lang.Object):
    PI_DISABLE_OUTPUT_ESCAPING: typing.ClassVar[str] = ...
    PI_ENABLE_OUTPUT_ESCAPING: typing.ClassVar[str] = ...
    def getSystemId(self) -> str: ...
    def setSystemId(self, arg1: str | java.lang.String, /) -> None: ...

class Source(java.lang.Object):
    def getSystemId(self) -> str: ...
    def setSystemId(self, arg1: str | java.lang.String, /) -> None: ...

class SourceLocator(java.lang.Object):
    def getColumnNumber(self) -> int: ...
    def getLineNumber(self) -> int: ...
    def getPublicId(self) -> str: ...
    def getSystemId(self) -> str: ...

class Templates(java.lang.Object):
    def getOutputProperties(self) -> java.util.Properties: ...
    def newTransformer(self) -> Transformer: ...

class Transformer(java.lang.Object):
    def __init__(self) -> None: ...
    def clearParameters(self) -> None: ...
    def getErrorListener(self) -> ErrorListener: ...
    def getOutputProperties(self) -> java.util.Properties: ...
    def getOutputProperty(self, arg1: str | java.lang.String, /) -> str: ...
    def getParameter(self, arg1: str | java.lang.String, /) -> java.lang.Object: ...
    def getURIResolver(self) -> URIResolver: ...
    def reset(self) -> None: ...
    def setErrorListener(self, arg1: ErrorListener, /) -> None: ...
    def setOutputProperties(self, arg1: java.util.Properties, /) -> None: ...
    def setOutputProperty(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...
    def setParameter(self, arg1: str | java.lang.String, arg2: java.lang.Object | int | bool | float | str, /) -> None: ...
    def setURIResolver(self, arg1: URIResolver, /) -> None: ...
    def transform(self, arg1: Source, arg2: Result, /) -> None: ...

class TransformerConfigurationException(TransformerException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, e: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, e: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: SourceLocator, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: SourceLocator, e: java.lang.Throwable, /) -> None: ...

class TransformerException(java.lang.Exception):
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, e: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, e: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: SourceLocator, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: SourceLocator, e: java.lang.Throwable, /) -> None: ...
    def getCause(self) -> java.lang.Throwable: ...
    def getException(self) -> java.lang.Throwable: ...
    def getLocationAsString(self) -> str: ...
    def getLocator(self) -> SourceLocator: ...
    def getMessageAndLocation(self) -> str: ...
    def initCause(self, cause: java.lang.Throwable, /) -> java.lang.Throwable: ...
    @typing.overload
    def printStackTrace(self) -> None: ...
    @typing.overload
    def printStackTrace(self, s: java.io.PrintStream, /) -> None: ...
    @typing.overload
    def printStackTrace(self, s: java.io.PrintWriter, /) -> None: ...
    def setLocator(self, location: SourceLocator, /) -> None: ...

class TransformerFactory(java.lang.Object):
    def __init__(self) -> None: ...
    def getAssociatedStylesheet(self, arg1: Source, arg2: str | java.lang.String, arg3: str | java.lang.String, arg4: str | java.lang.String, /) -> Source: ...
    def getAttribute(self, arg1: str | java.lang.String, /) -> java.lang.Object: ...
    def getErrorListener(self) -> ErrorListener: ...
    def getFeature(self, arg1: str | java.lang.String, /) -> bool: ...
    def getURIResolver(self) -> URIResolver: ...
    @typing.overload
    @staticmethod
    def newInstance() -> TransformerFactory: ...
    @typing.overload
    @staticmethod
    def newInstance(factoryClassName: str | java.lang.String, classLoader: java.lang.ClassLoader, /) -> TransformerFactory: ...
    def newTemplates(self, arg1: Source, /) -> Templates: ...
    @typing.overload
    def newTransformer(self) -> Transformer: ...
    @typing.overload
    def newTransformer(self, arg1: Source, /) -> Transformer: ...
    def setAttribute(self, arg1: str | java.lang.String, arg2: java.lang.Object | int | bool | float | str, /) -> None: ...
    def setErrorListener(self, arg1: ErrorListener, /) -> None: ...
    def setFeature(self, arg1: str | java.lang.String, arg2: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setURIResolver(self, arg1: URIResolver, /) -> None: ...

class TransformerFactoryConfigurationError(java.lang.Error):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, e: java.lang.Exception, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, e: java.lang.Exception, msg: str | java.lang.String, /) -> None: ...
    def getException(self) -> java.lang.Exception: ...
    def getMessage(self) -> str: ...

class URIResolver(java.lang.Object):
    def resolve(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> Source: ...
