import typing

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

class AttributeList(java.lang.Object):
    def getLength(self) -> int: ...
    def getName(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getType(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getType(self, arg1: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getValue(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getValue(self, arg1: str | java.lang.String, /) -> str: ...

class Attributes(java.lang.Object):
    @typing.overload
    def getIndex(self, arg1: str | java.lang.String, /) -> int: ...
    @typing.overload
    def getIndex(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> int: ...
    def getLength(self) -> int: ...
    def getLocalName(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    def getQName(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getType(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getType(self, arg1: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getType(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> str: ...
    def getURI(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getValue(self, arg1: int | java.jint | java.lang.Integer, /) -> str: ...
    @typing.overload
    def getValue(self, arg1: str | java.lang.String, /) -> str: ...
    @typing.overload
    def getValue(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> str: ...

class ContentHandler(java.lang.Object):
    def characters(self, arg1: java.chaquopy.JavaArrayJChar, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def endDocument(self) -> None: ...
    def endElement(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, /) -> None: ...
    def endPrefixMapping(self, arg1: str | java.lang.String, /) -> None: ...
    def ignorableWhitespace(self, arg1: java.chaquopy.JavaArrayJChar, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def processingInstruction(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...
    def setDocumentLocator(self, arg1: Locator, /) -> None: ...
    def skippedEntity(self, arg1: str | java.lang.String, /) -> None: ...
    def startDocument(self) -> None: ...
    def startElement(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, arg4: Attributes, /) -> None: ...
    def startPrefixMapping(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...

class DTDHandler(java.lang.Object):
    def notationDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, /) -> None: ...
    def unparsedEntityDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, arg4: str | java.lang.String, /) -> None: ...

class DocumentHandler(java.lang.Object):
    def characters(self, arg1: java.chaquopy.JavaArrayJChar, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def endDocument(self) -> None: ...
    def endElement(self, arg1: str | java.lang.String, /) -> None: ...
    def ignorableWhitespace(self, arg1: java.chaquopy.JavaArrayJChar, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def processingInstruction(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...
    def setDocumentLocator(self, arg1: Locator, /) -> None: ...
    def startDocument(self) -> None: ...
    def startElement(self, arg1: str | java.lang.String, arg2: AttributeList, /) -> None: ...

class EntityResolver(java.lang.Object):
    def resolveEntity(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> InputSource: ...

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

class HandlerBase(DTDHandler, DocumentHandler, EntityResolver, ErrorHandler):
    def __init__(self) -> None: ...
    def characters(self, ch: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> None: ...
    def endDocument(self) -> None: ...
    def endElement(self, name: str | java.lang.String, /) -> None: ...
    def error(self, e: SAXParseException, /) -> None: ...
    def fatalError(self, e: SAXParseException, /) -> None: ...
    def ignorableWhitespace(self, ch: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> None: ...
    def notationDecl(self, name: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, /) -> None: ...
    def processingInstruction(self, target: str | java.lang.String, data: str | java.lang.String, /) -> None: ...
    def resolveEntity(self, publicId: str | java.lang.String, systemId: str | java.lang.String, /) -> InputSource: ...
    def setDocumentLocator(self, locator: Locator, /) -> None: ...
    def startDocument(self) -> None: ...
    def startElement(self, name: str | java.lang.String, attributes: AttributeList, /) -> None: ...
    def unparsedEntityDecl(self, name: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, notationName: str | java.lang.String, /) -> None: ...
    def warning(self, e: SAXParseException, /) -> None: ...

class InputSource(java.lang.Object):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, byteStream: java.io.InputStream, /) -> None: ...
    @typing.overload
    def __init__(self, characterStream: java.io.Reader, /) -> None: ...
    @typing.overload
    def __init__(self, systemId: str | java.lang.String, /) -> None: ...
    def getByteStream(self) -> java.io.InputStream: ...
    def getCharacterStream(self) -> java.io.Reader: ...
    def getEncoding(self) -> str: ...
    def getPublicId(self) -> str: ...
    def getSystemId(self) -> str: ...
    def setByteStream(self, byteStream: java.io.InputStream, /) -> None: ...
    def setCharacterStream(self, characterStream: java.io.Reader, /) -> None: ...
    def setEncoding(self, encoding: str | java.lang.String, /) -> None: ...
    def setPublicId(self, publicId: str | java.lang.String, /) -> None: ...
    def setSystemId(self, systemId: str | java.lang.String, /) -> None: ...

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

class Parser(java.lang.Object):
    @typing.overload
    def parse(self, arg1: str | java.lang.String, /) -> None: ...
    @typing.overload
    def parse(self, arg1: InputSource, /) -> None: ...
    def setDTDHandler(self, arg1: DTDHandler, /) -> None: ...
    def setDocumentHandler(self, arg1: DocumentHandler, /) -> None: ...
    def setEntityResolver(self, arg1: EntityResolver, /) -> None: ...
    def setErrorHandler(self, arg1: ErrorHandler, /) -> None: ...
    def setLocale(self, arg1: java.util.Locale, /) -> None: ...

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

class SAXNotRecognizedException(SAXException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...

class SAXNotSupportedException(SAXException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...

class SAXParseException(SAXException):
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: Locator, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, locator: Locator, e: java.lang.Exception, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, lineNumber: int | java.jint | java.lang.Integer, columnNumber: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, lineNumber: int | java.jint | java.lang.Integer, columnNumber: int | java.jint | java.lang.Integer, e: java.lang.Exception, /) -> None: ...
    def getColumnNumber(self) -> int: ...
    def getLineNumber(self) -> int: ...
    def getPublicId(self) -> str: ...
    def getSystemId(self) -> str: ...

class XMLFilter(XMLReader):
    def getParent(self) -> XMLReader: ...
    def setParent(self, arg1: XMLReader, /) -> None: ...

class XMLReader(java.lang.Object):
    def getContentHandler(self) -> ContentHandler: ...
    def getDTDHandler(self) -> DTDHandler: ...
    def getEntityResolver(self) -> EntityResolver: ...
    def getErrorHandler(self) -> ErrorHandler: ...
    def getFeature(self, arg1: str | java.lang.String, /) -> bool: ...
    def getProperty(self, arg1: str | java.lang.String, /) -> java.lang.Object: ...
    @typing.overload
    def parse(self, arg1: str | java.lang.String, /) -> None: ...
    @typing.overload
    def parse(self, arg1: InputSource, /) -> None: ...
    def setContentHandler(self, arg1: ContentHandler, /) -> None: ...
    def setDTDHandler(self, arg1: DTDHandler, /) -> None: ...
    def setEntityResolver(self, arg1: EntityResolver, /) -> None: ...
    def setErrorHandler(self, arg1: ErrorHandler, /) -> None: ...
    def setFeature(self, arg1: str | java.lang.String, arg2: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProperty(self, arg1: str | java.lang.String, arg2: java.lang.Object | int | bool | float | str, /) -> None: ...
