import typing

import java
import java.chaquopy
import java.lang
import org.xml.sax
import org.xml.sax.helpers

class Attributes2(org.xml.sax.Attributes):
    @typing.overload
    def isDeclared(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isDeclared(self, arg1: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isDeclared(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isSpecified(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isSpecified(self, arg1: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isSpecified(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> bool: ...

class Attributes2Impl(Attributes2, org.xml.sax.helpers.AttributesImpl):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, atts: org.xml.sax.Attributes, /) -> None: ...
    def addAttribute(self, uri: str | java.lang.String, localName: str | java.lang.String, qName: str | java.lang.String, type: str | java.lang.String, value: str | java.lang.String, /) -> None: ...
    @typing.overload
    def isDeclared(self, index: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isDeclared(self, qName: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isDeclared(self, uri: str | java.lang.String, localName: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isSpecified(self, index: int | java.jint | java.lang.Integer, /) -> bool: ...
    @typing.overload
    def isSpecified(self, qName: str | java.lang.String, /) -> bool: ...
    @typing.overload
    def isSpecified(self, uri: str | java.lang.String, localName: str | java.lang.String, /) -> bool: ...
    def removeAttribute(self, index: int | java.jint | java.lang.Integer, /) -> None: ...
    def setAttributes(self, atts: org.xml.sax.Attributes, /) -> None: ...
    def setDeclared(self, index: int | java.jint | java.lang.Integer, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setSpecified(self, index: int | java.jint | java.lang.Integer, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class DeclHandler(java.lang.Object):
    def attributeDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, arg4: str | java.lang.String, arg5: str | java.lang.String, /) -> None: ...
    def elementDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...
    def externalEntityDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, /) -> None: ...
    def internalEntityDecl(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> None: ...

class DefaultHandler2(DeclHandler, EntityResolver2, LexicalHandler, org.xml.sax.helpers.DefaultHandler):
    def __init__(self) -> None: ...
    def attributeDecl(self, eName: str | java.lang.String, aName: str | java.lang.String, type: str | java.lang.String, mode: str | java.lang.String, value: str | java.lang.String, /) -> None: ...
    def comment(self, ch: java.chaquopy.JavaArrayJChar, start: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> None: ...
    def elementDecl(self, name: str | java.lang.String, model: str | java.lang.String, /) -> None: ...
    def endCDATA(self) -> None: ...
    def endDTD(self) -> None: ...
    def endEntity(self, name: str | java.lang.String, /) -> None: ...
    def externalEntityDecl(self, name: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, /) -> None: ...
    def getExternalSubset(self, name: str | java.lang.String, baseURI: str | java.lang.String, /) -> org.xml.sax.InputSource: ...
    def internalEntityDecl(self, name: str | java.lang.String, value: str | java.lang.String, /) -> None: ...
    @typing.overload
    def resolveEntity(self, publicId: str | java.lang.String, systemId: str | java.lang.String, /) -> org.xml.sax.InputSource: ...
    @typing.overload
    def resolveEntity(self, name: str | java.lang.String, publicId: str | java.lang.String, baseURI: str | java.lang.String, systemId: str | java.lang.String, /) -> org.xml.sax.InputSource: ...
    def startCDATA(self) -> None: ...
    def startDTD(self, name: str | java.lang.String, publicId: str | java.lang.String, systemId: str | java.lang.String, /) -> None: ...
    def startEntity(self, name: str | java.lang.String, /) -> None: ...

class EntityResolver2(org.xml.sax.EntityResolver):
    def getExternalSubset(self, arg1: str | java.lang.String, arg2: str | java.lang.String, /) -> org.xml.sax.InputSource: ...
    def resolveEntity(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, arg4: str | java.lang.String, /) -> org.xml.sax.InputSource: ...

class LexicalHandler(java.lang.Object):
    def comment(self, arg1: java.chaquopy.JavaArrayJChar, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def endCDATA(self) -> None: ...
    def endDTD(self) -> None: ...
    def endEntity(self, arg1: str | java.lang.String, /) -> None: ...
    def startCDATA(self) -> None: ...
    def startDTD(self, arg1: str | java.lang.String, arg2: str | java.lang.String, arg3: str | java.lang.String, /) -> None: ...
    def startEntity(self, arg1: str | java.lang.String, /) -> None: ...

class Locator2(org.xml.sax.Locator):
    def getEncoding(self) -> str: ...
    def getXMLVersion(self) -> str: ...

class Locator2Impl(Locator2, org.xml.sax.helpers.LocatorImpl):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, locator: org.xml.sax.Locator, /) -> None: ...
    def getEncoding(self) -> str: ...
    def getXMLVersion(self) -> str: ...
    def setEncoding(self, encoding: str | java.lang.String, /) -> None: ...
    def setXMLVersion(self, version: str | java.lang.String, /) -> None: ...
