import PySide2.QtCore
import _typeshed
import collections.abc
import datetime
import shiboken2
import typing
T = typing.TypeVar('T')
import typing_extensions

class QScriptClass(shiboken2.Object):
    class Extension:
        Callable: typing.ClassVar[QScriptClass.Extension] = ...
        HasInstance: typing.ClassVar[QScriptClass.Extension] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptClass.Extension: ...

    class QueryFlag:
        HandlesReadAccess: typing.ClassVar[QScriptClass.QueryFlag] = ...
        HandlesWriteAccess: typing.ClassVar[QScriptClass.QueryFlag] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptClass.QueryFlag: ...
    Callable: typing.ClassVar[QScriptClass.Extension] = ...
    HandlesReadAccess: typing.ClassVar[QScriptClass.QueryFlag] = ...
    HandlesWriteAccess: typing.ClassVar[QScriptClass.QueryFlag] = ...
    HasInstance: typing.ClassVar[QScriptClass.Extension] = ...
    def __init__(self, engine: QScriptEngine) -> None: ...
    def engine(self) -> QScriptEngine: ...
    def extension(self, extension: QScriptClass.Extension, argument: typing.Any = ...) -> typing.Any: ...
    def name(self) -> str: ...
    def newIterator(self, object: QScriptValue) -> QScriptClassPropertyIterator: ...
    def property(self, object: QScriptValue, name: QScriptString, id: int) -> QScriptValue: ...
    def propertyFlags(self, object: QScriptValue, name: QScriptString, id: int) -> typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag]: ...
    def prototype(self) -> QScriptValue: ...
    def setProperty(self, object: QScriptValue, name: QScriptString, id: int, value: QScriptValue) -> None: ...
    def supportsExtension(self, extension: QScriptClass.Extension) -> bool: ...

class QScriptClassPropertyIterator(shiboken2.Object):
    def __init__(self, object: QScriptValue) -> None: ...
    def flags(self) -> typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag]: ...
    def hasNext(self) -> bool: ...
    def hasPrevious(self) -> bool: ...
    def id(self) -> int: ...
    def name(self) -> QScriptString: ...
    def next(self) -> None: ...
    def object(self) -> QScriptValue: ...
    def previous(self) -> None: ...
    def toBack(self) -> None: ...
    def toFront(self) -> None: ...

class QScriptContext(shiboken2.Object):
    class Error:
        RangeError: typing.ClassVar[QScriptContext.Error] = ...
        ReferenceError: typing.ClassVar[QScriptContext.Error] = ...
        SyntaxError: typing.ClassVar[QScriptContext.Error] = ...
        TypeError: typing.ClassVar[QScriptContext.Error] = ...
        URIError: typing.ClassVar[QScriptContext.Error] = ...
        UnknownError: typing.ClassVar[QScriptContext.Error] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptContext.Error: ...

    class ExecutionState:
        ExceptionState: typing.ClassVar[QScriptContext.ExecutionState] = ...
        NormalState: typing.ClassVar[QScriptContext.ExecutionState] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptContext.ExecutionState: ...
    ExceptionState: typing.ClassVar[QScriptContext.ExecutionState] = ...
    NormalState: typing.ClassVar[QScriptContext.ExecutionState] = ...
    RangeError: typing.ClassVar[QScriptContext.Error] = ...
    ReferenceError: typing.ClassVar[QScriptContext.Error] = ...
    SyntaxError: typing.ClassVar[QScriptContext.Error] = ...
    TypeError: typing.ClassVar[QScriptContext.Error] = ...
    URIError: typing.ClassVar[QScriptContext.Error] = ...
    UnknownError: typing.ClassVar[QScriptContext.Error] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...
    def activationObject(self) -> QScriptValue: ...
    def argument(self, index: int) -> QScriptValue: ...
    def argumentCount(self) -> int: ...
    def argumentsObject(self) -> QScriptValue: ...
    def backtrace(self) -> typing.List[str]: ...
    def callee(self) -> QScriptValue: ...
    def engine(self) -> QScriptEngine: ...
    def isCalledAsConstructor(self) -> bool: ...
    def parentContext(self) -> QScriptContext: ...
    def popScope(self) -> QScriptValue: ...
    def pushScope(self, object: QScriptValue) -> None: ...
    def returnValue(self) -> QScriptValue: ...
    def scopeChain(self) -> typing.List[QScriptValue]: ...
    def setActivationObject(self, activation: QScriptValue) -> None: ...
    def setReturnValue(self, result: QScriptValue) -> None: ...
    def setThisObject(self, thisObject: QScriptValue) -> None: ...
    def state(self) -> QScriptContext.ExecutionState: ...
    def thisObject(self) -> QScriptValue: ...
    @typing.overload
    def throwError(self, error: QScriptContext.Error, text: str) -> QScriptValue: ...
    @typing.overload
    def throwError(self, text: str) -> QScriptValue: ...
    def throwValue(self, value: QScriptValue) -> QScriptValue: ...
    def toString(self) -> str: ...

class QScriptContextInfo(shiboken2.Object):
    class FunctionType:
        NativeFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
        QtFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
        QtPropertyFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
        ScriptFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptContextInfo.FunctionType: ...
    NativeFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
    QtFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
    QtPropertyFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
    ScriptFunction: typing.ClassVar[QScriptContextInfo.FunctionType] = ...
    @typing.overload
    def __init__(self, other: QScriptContextInfo) -> None: ...
    @typing.overload
    def __init__(self, context: QScriptContext) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...
    def columnNumber(self) -> int: ...
    def fileName(self) -> str: ...
    def functionEndLineNumber(self) -> int: ...
    def functionMetaIndex(self) -> int: ...
    def functionName(self) -> str: ...
    def functionParameterNames(self) -> typing.List[str]: ...
    def functionStartLineNumber(self) -> int: ...
    def functionType(self) -> QScriptContextInfo.FunctionType: ...
    def isNull(self) -> bool: ...
    def lineNumber(self) -> int: ...
    def scriptId(self) -> int: ...
    def __bool__(self) -> bool: ...
    def __copy__(self) -> None: ...
    def __eq__(self, other: object) -> bool: ...
    def __ge__(self, other: object) -> bool: ...
    def __gt__(self, other: object) -> bool: ...
    def __le__(self, other: object) -> bool: ...
    def __lshift__(self, arg__1: PySide2.QtCore.QDataStream) -> PySide2.QtCore.QDataStream: ...
    def __lt__(self, other: object) -> bool: ...
    def __ne__(self, other: object) -> bool: ...
    def __rlshift__(self, other): ...
    def __rrshift__(self, other): ...
    def __rshift__(self, arg__1: PySide2.QtCore.QDataStream) -> PySide2.QtCore.QDataStream: ...

class QScriptEngine(PySide2.QtCore.QObject):
    class QObjectWrapOption:
        AutoCreateDynamicProperties: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeChildObjects: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeDeleteLater: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeSlots: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeSuperClassContents: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeSuperClassMethods: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        ExcludeSuperClassProperties: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        PreferExistingWrapperObject: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        SkipMethodsInEnumeration: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptEngine.QObjectWrapOptions: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...

    class QObjectWrapOptions:
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptEngine.QObjectWrapOptions: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptEngine.QObjectWrapOptions: ...

    class ValueOwnership:
        AutoOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
        QtOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
        ScriptOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptEngine.ValueOwnership: ...
    AutoCreateDynamicProperties: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    AutoOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
    ExcludeChildObjects: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    ExcludeDeleteLater: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    ExcludeSlots: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    ExcludeSuperClassContents: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    ExcludeSuperClassMethods: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    ExcludeSuperClassProperties: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    PreferExistingWrapperObject: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    QtOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
    ScriptOwnership: typing.ClassVar[QScriptEngine.ValueOwnership] = ...
    SkipMethodsInEnumeration: typing.ClassVar[QScriptEngine.QObjectWrapOption] = ...
    signalHandlerException: typing.ClassVar[PySide2.QtCore.Signal] = ...
    staticMetaObject: typing.ClassVar[PySide2.QtCore.QMetaObject] = ...
    @typing.overload
    def __init__(self, parent: typing.Union[PySide2.QtCore.QObject, None], destroyed: typing.Callable = ..., objectName: str = ..., objectNameChanged: typing.Callable = ..., signalHandlerException: typing.Callable = ...) -> None: ...
    @typing.overload
    def __init__(self, destroyed: typing.Callable = ..., objectName: str = ..., objectNameChanged: typing.Callable = ..., signalHandlerException: typing.Callable = ...) -> None: ...
    def abortEvaluation(self, result: QScriptValue = ...) -> None: ...
    def agent(self) -> QScriptEngineAgent: ...
    def availableExtensions(self) -> typing.List[str]: ...
    def canEvaluate(self, program: str) -> bool: ...
    def clearExceptions(self) -> None: ...
    def collectGarbage(self) -> None: ...
    def currentContext(self) -> QScriptContext: ...
    def defaultPrototype(self, metaTypeId: int) -> QScriptValue: ...
    @typing.overload
    def evaluate(self, program: str, fileName: str = ..., lineNumber: int = ...) -> QScriptValue: ...
    @typing.overload
    def evaluate(self, program: QScriptProgram) -> QScriptValue: ...
    def globalObject(self) -> QScriptValue: ...
    def hasUncaughtException(self) -> bool: ...
    def importExtension(self, extension: str) -> QScriptValue: ...
    def importedExtensions(self) -> typing.List[str]: ...
    def installTranslatorFunctions(self, object: QScriptValue = ...) -> None: ...
    def isEvaluating(self) -> bool: ...
    def newActivationObject(self) -> QScriptValue: ...
    def newArray(self, length: int = ...) -> QScriptValue: ...
    @typing.overload
    def newDate(self, value: typing.Union[PySide2.QtCore.QDateTime, datetime.datetime]) -> QScriptValue: ...
    @typing.overload
    def newDate(self, value: float) -> QScriptValue: ...
    @typing.overload
    def newObject(self, scriptClass: QScriptClass, data: QScriptValue = ...) -> QScriptValue: ...
    @typing.overload
    def newObject(self) -> QScriptValue: ...
    def newQMetaObject(self, metaObject: PySide2.QtCore.QMetaObject, ctor: QScriptValue = ...) -> QScriptValue: ...
    @typing.overload
    def newQObject(self, scriptObject: QScriptValue, qtObject: PySide2.QtCore.QObject, ownership: QScriptEngine.ValueOwnership = ..., options: typing.Union[QScriptEngine.QObjectWrapOptions, QScriptEngine.QObjectWrapOption] = ...) -> QScriptValue: ...
    @typing.overload
    def newQObject(self, object: PySide2.QtCore.QObject, ownership: QScriptEngine.ValueOwnership = ..., options: typing.Union[QScriptEngine.QObjectWrapOptions, QScriptEngine.QObjectWrapOption] = ...) -> QScriptValue: ...
    @typing.overload
    def newRegExp(self, pattern: str, flags: str) -> QScriptValue: ...
    @typing.overload
    def newRegExp(self, regexp: PySide2.QtCore.QRegExp) -> QScriptValue: ...
    @typing.overload
    def newVariant(self, object: QScriptValue, value: typing.Any) -> QScriptValue: ...
    @typing.overload
    def newVariant(self, value: typing.Any) -> QScriptValue: ...
    def nullValue(self) -> QScriptValue: ...
    def objectById(self, id: int) -> QScriptValue: ...
    def popContext(self) -> None: ...
    def processEventsInterval(self) -> int: ...
    def pushContext(self) -> QScriptContext: ...
    def reportAdditionalMemoryCost(self, size: int) -> None: ...
    def setAgent(self, agent: QScriptEngineAgent) -> None: ...
    def setDefaultPrototype(self, metaTypeId: int, prototype: QScriptValue) -> None: ...
    def setGlobalObject(self, object: QScriptValue) -> None: ...
    def setProcessEventsInterval(self, interval: int) -> None: ...
    def toObject(self, value: QScriptValue) -> QScriptValue: ...
    def toStringHandle(self, str: str) -> QScriptString: ...
    def uncaughtException(self) -> QScriptValue: ...
    def uncaughtExceptionBacktrace(self) -> typing.List[str]: ...
    def uncaughtExceptionLineNumber(self) -> int: ...
    def undefinedValue(self) -> QScriptValue: ...

class QScriptEngineAgent(shiboken2.Object):
    class Extension:
        DebuggerInvocationRequest: typing.ClassVar[QScriptEngineAgent.Extension] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptEngineAgent.Extension: ...
    DebuggerInvocationRequest: typing.ClassVar[QScriptEngineAgent.Extension] = ...
    def __init__(self, engine: QScriptEngine) -> None: ...
    def contextPop(self) -> None: ...
    def contextPush(self) -> None: ...
    def engine(self) -> QScriptEngine: ...
    def exceptionCatch(self, scriptId: int, exception: QScriptValue) -> None: ...
    def exceptionThrow(self, scriptId: int, exception: QScriptValue, hasHandler: bool) -> None: ...
    def extension(self, extension: QScriptEngineAgent.Extension, argument: typing.Any = ...) -> typing.Any: ...
    def functionEntry(self, scriptId: int) -> None: ...
    def functionExit(self, scriptId: int, returnValue: QScriptValue) -> None: ...
    def positionChange(self, scriptId: int, lineNumber: int, columnNumber: int) -> None: ...
    def scriptLoad(self, id: int, program: str, fileName: str, baseLineNumber: int) -> None: ...
    def scriptUnload(self, id: int) -> None: ...
    def supportsExtension(self, extension: QScriptEngineAgent.Extension) -> bool: ...

class QScriptExtensionInterface(PySide2.QtCore.QFactoryInterface):
    def __init__(self) -> None: ...
    def initialize(self, key: str, engine: QScriptEngine) -> None: ...

class QScriptExtensionPlugin(PySide2.QtCore.QObject, QScriptExtensionInterface):
    staticMetaObject: typing.ClassVar[PySide2.QtCore.QMetaObject] = ...
    def __init__(self, parent: typing.Union[PySide2.QtCore.QObject, None] = ..., destroyed: typing.Callable = ..., objectName: str = ..., objectNameChanged: typing.Callable = ...) -> None: ...
    def initialize(self, key: str, engine: QScriptEngine) -> None: ...
    def keys(self) -> typing.List[str]: ...
    def setupPackage(self, key: str, engine: QScriptEngine) -> QScriptValue: ...

class QScriptProgram(shiboken2.Object):
    @typing.overload
    def __init__(self, sourceCode: str, fileName: str = ..., firstLineNumber: int = ...) -> None: ...
    @typing.overload
    def __init__(self, other: QScriptProgram) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...
    def fileName(self) -> str: ...
    def firstLineNumber(self) -> int: ...
    def isNull(self) -> bool: ...
    def sourceCode(self) -> str: ...
    def __bool__(self) -> bool: ...
    def __copy__(self) -> None: ...
    def __eq__(self, other: object) -> bool: ...
    def __ge__(self, other: object) -> bool: ...
    def __gt__(self, other: object) -> bool: ...
    def __le__(self, other: object) -> bool: ...
    def __lt__(self, other: object) -> bool: ...
    def __ne__(self, other: object) -> bool: ...

class QScriptString(shiboken2.Object):
    @typing.overload
    def __init__(self, other: QScriptString) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...
    def isValid(self) -> bool: ...
    def toArrayIndex(self) -> typing.Tuple[int, bool]: ...
    def toString(self) -> str: ...
    def __copy__(self) -> None: ...
    def __eq__(self, other: object) -> bool: ...
    def __ge__(self, other: object) -> bool: ...
    def __gt__(self, other: object) -> bool: ...
    def __le__(self, other: object) -> bool: ...
    def __lt__(self, other: object) -> bool: ...
    def __ne__(self, other: object) -> bool: ...

class QScriptValue(shiboken2.Object):
    class PropertyFlag:
        KeepExistingFlags: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        PropertyGetter: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        PropertySetter: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        QObjectMember: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        ReadOnly: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        SkipInEnumeration: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        Undeletable: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        UserRange: typing.ClassVar[QScriptValue.PropertyFlag] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptValue.PropertyFlags: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...

    class PropertyFlags:
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptValue.PropertyFlags: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptValue.PropertyFlags: ...

    class ResolveFlag:
        ResolveFull: typing.ClassVar[QScriptValue.ResolveFlag] = ...
        ResolveLocal: typing.ClassVar[QScriptValue.ResolveFlag] = ...
        ResolvePrototype: typing.ClassVar[QScriptValue.ResolveFlag] = ...
        ResolveScope: typing.ClassVar[QScriptValue.ResolveFlag] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptValue.ResolveFlags: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...

    class ResolveFlags:
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __invert__(self) -> QScriptValue.ResolveFlags: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptValue.ResolveFlags: ...

    class SpecialValue:
        NullValue: typing.ClassVar[QScriptValue.SpecialValue] = ...
        UndefinedValue: typing.ClassVar[QScriptValue.SpecialValue] = ...
        values: typing.ClassVar[dict] = ...
        name: _typeshed.Incomplete
        @classmethod
        def __init__(cls, *args, **kwargs) -> None: ...
        def __add__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __and__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __bool__(self) -> bool: ...
        def __eq__(self, other: object) -> bool: ...
        def __ge__(self, other: object) -> bool: ...
        def __gt__(self, other: object) -> bool: ...
        def __hash__(self) -> int: ...
        def __index__(self) -> int: ...
        def __int__(self) -> int: ...
        def __le__(self, other: object) -> bool: ...
        def __lt__(self, other: object) -> bool: ...
        def __mul__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __ne__(self, other: object) -> bool: ...
        def __or__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __pos__(self): ...
        def __radd__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __rand__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __rmul__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __ror__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __rsub__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __rxor__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __sub__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
        def __xor__(self, other: typing.SupportsInt) -> QScriptValue.SpecialValue: ...
    KeepExistingFlags: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    NullValue: typing.ClassVar[QScriptValue.SpecialValue] = ...
    PropertyGetter: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    PropertySetter: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    QObjectMember: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    ReadOnly: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    ResolveFull: typing.ClassVar[QScriptValue.ResolveFlag] = ...
    ResolveLocal: typing.ClassVar[QScriptValue.ResolveFlag] = ...
    ResolvePrototype: typing.ClassVar[QScriptValue.ResolveFlag] = ...
    ResolveScope: typing.ClassVar[QScriptValue.ResolveFlag] = ...
    SkipInEnumeration: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    UndefinedValue: typing.ClassVar[QScriptValue.SpecialValue] = ...
    Undeletable: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    UserRange: typing.ClassVar[QScriptValue.PropertyFlag] = ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: QScriptValue.SpecialValue) -> None: ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: str) -> None: ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: bool) -> None: ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: bytes) -> None: ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: float) -> None: ...
    @typing.overload
    def __init__(self, engine: QScriptEngine, val: int) -> None: ...
    @typing.overload
    def __init__(self, value: QScriptValue.SpecialValue) -> None: ...
    @typing.overload
    def __init__(self, value: str) -> None: ...
    @typing.overload
    def __init__(self, value: bool) -> None: ...
    @typing.overload
    def __init__(self, value: bytes) -> None: ...
    @typing.overload
    def __init__(self, value: float) -> None: ...
    @typing.overload
    def __init__(self, value: int) -> None: ...
    @typing.overload
    def __init__(self, other: QScriptValue) -> None: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def call(self, thisObject: QScriptValue, arguments: QScriptValue) -> QScriptValue: ...
    @typing.overload
    def call(self, thisObject: QScriptValue = ..., args: typing.Iterable[QScriptValue] = ...) -> QScriptValue: ...
    @typing.overload
    def construct(self, arguments: QScriptValue) -> QScriptValue: ...
    @typing.overload
    def construct(self, args: typing.Iterable[QScriptValue] = ...) -> QScriptValue: ...
    def data(self) -> QScriptValue: ...
    def engine(self) -> QScriptEngine: ...
    def equals(self, other: QScriptValue) -> bool: ...
    def instanceOf(self, other: QScriptValue) -> bool: ...
    def isArray(self) -> bool: ...
    def isBool(self) -> bool: ...
    def isBoolean(self) -> bool: ...
    def isDate(self) -> bool: ...
    def isError(self) -> bool: ...
    def isFunction(self) -> bool: ...
    def isNull(self) -> bool: ...
    def isNumber(self) -> bool: ...
    def isObject(self) -> bool: ...
    def isQMetaObject(self) -> bool: ...
    def isQObject(self) -> bool: ...
    def isRegExp(self) -> bool: ...
    def isString(self) -> bool: ...
    def isUndefined(self) -> bool: ...
    def isValid(self) -> bool: ...
    def isVariant(self) -> bool: ...
    def lessThan(self, other: QScriptValue) -> bool: ...
    def objectId(self) -> int: ...
    @typing.overload
    def property(self, name: QScriptString, mode: typing.Union[QScriptValue.ResolveFlags, QScriptValue.ResolveFlag] = ...) -> QScriptValue: ...
    @typing.overload
    def property(self, name: str, mode: typing.Union[QScriptValue.ResolveFlags, QScriptValue.ResolveFlag] = ...) -> QScriptValue: ...
    @typing.overload
    def property(self, arrayIndex: int, mode: typing.Union[QScriptValue.ResolveFlags, QScriptValue.ResolveFlag] = ...) -> QScriptValue: ...
    @typing.overload
    def propertyFlags(self, name: QScriptString, mode: typing.Union[QScriptValue.ResolveFlags, QScriptValue.ResolveFlag] = ...) -> typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag]: ...
    @typing.overload
    def propertyFlags(self, name: str, mode: typing.Union[QScriptValue.ResolveFlags, QScriptValue.ResolveFlag] = ...) -> typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag]: ...
    def prototype(self) -> QScriptValue: ...
    def scope(self) -> QScriptValue: ...
    def scriptClass(self) -> QScriptClass: ...
    def setData(self, data: QScriptValue) -> None: ...
    @typing.overload
    def setProperty(self, name: QScriptString, value: QScriptValue, flags: typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag] = ...) -> None: ...
    @typing.overload
    def setProperty(self, name: str, value: QScriptValue, flags: typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag] = ...) -> None: ...
    @typing.overload
    def setProperty(self, arrayIndex: int, value: QScriptValue, flags: typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag] = ...) -> None: ...
    def setPrototype(self, prototype: QScriptValue) -> None: ...
    def setScope(self, scope: QScriptValue) -> None: ...
    def setScriptClass(self, scriptClass: QScriptClass) -> None: ...
    def strictlyEquals(self, other: QScriptValue) -> bool: ...
    def toBool(self) -> bool: ...
    def toBoolean(self) -> bool: ...
    def toDateTime(self) -> PySide2.QtCore.QDateTime: ...
    def toInt32(self) -> int: ...
    def toInteger(self) -> float: ...
    def toNumber(self) -> float: ...
    def toObject(self) -> QScriptValue: ...
    def toQMetaObject(self) -> PySide2.QtCore.QMetaObject: ...
    def toQObject(self) -> PySide2.QtCore.QObject: ...
    def toRegExp(self) -> PySide2.QtCore.QRegExp: ...
    def toString(self) -> str: ...
    def toUInt16(self) -> int: ...
    def toUInt32(self) -> int: ...
    def toVariant(self) -> typing.Any: ...
    def __bool__(self) -> bool: ...
    def __copy__(self) -> None: ...
    def __getitem__(self, index): ...
    def __iter__(self) -> object: ...

class QScriptValueIterator(shiboken2.Object):
    def __init__(self, value: QScriptValue) -> None: ...
    def flags(self) -> typing.Union[QScriptValue.PropertyFlags, QScriptValue.PropertyFlag]: ...
    def hasNext(self) -> bool: ...
    def hasPrevious(self) -> bool: ...
    def name(self) -> str: ...
    def next(self) -> None: ...
    def previous(self) -> None: ...
    def remove(self) -> None: ...
    def scriptName(self) -> QScriptString: ...
    def setValue(self, value: QScriptValue) -> None: ...
    def toBack(self) -> None: ...
    def toFront(self) -> None: ...
    def value(self) -> QScriptValue: ...
    def __iter__(self) -> object: ...
    def __next__(self) -> object: ...

class QScriptable(shiboken2.Object):
    def __init__(self) -> None: ...
    def argument(self, index: int) -> QScriptValue: ...
    def argumentCount(self) -> int: ...
    def context(self) -> QScriptContext: ...
    def engine(self) -> QScriptEngine: ...
    def thisObject(self) -> QScriptValue: ...
