# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.QtQml, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtQml`

import PySide6.QtQml
import PySide6.QtCore

import enum
import typing
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class ListProperty(PySide6.QtCore.Property): ...


class QIntList: ...


class QJSEngine(PySide6.QtCore.QObject):

    uiLanguageChanged        : typing.ClassVar[Signal] = ... # uiLanguageChanged()

    class Extension(enum.Flag):

        TranslationExtension      = 0x1
        ConsoleExtension          = 0x2
        GarbageCollectionExtension = 0x4
        AllExtensions             = 0xffffffff

    class ObjectOwnership(enum.Enum):

        CppOwnership              = 0x0
        JavaScriptOwnership       = 0x1


class QJSManagedValue(Shiboken.Object):

    class Type(enum.Enum):

        Undefined                 = 0x0
        Boolean                   = 0x1
        Number                    = 0x2
        String                    = 0x3
        Object                    = 0x4
        Symbol                    = 0x5
        Function                  = 0x6


class QJSPrimitiveValue(Shiboken.Object):

    class Type(enum.Enum):

        Undefined                 = 0x0
        Null                      = 0x1
        Boolean                   = 0x2
        Integer                   = 0x3
        Double                    = 0x4
        String                    = 0x5


class QJSValue(Shiboken.Object):

    class ErrorType(enum.Enum):

        NoError                   = 0x0
        GenericError              = 0x1
        EvalError                 = 0x2
        RangeError                = 0x3
        ReferenceError            = 0x4
        SyntaxError               = 0x5
        TypeError                 = 0x6
        URIError                  = 0x7

    class ObjectConversionBehavior(enum.Enum):

        ConvertJSObjects          = 0x0
        RetainJSObjects           = 0x1

    class SpecialValue(enum.Enum):

        NullValue                 = 0x0
        UndefinedValue            = 0x1


class QJSValueIterator(Shiboken.Object): ...


class QPyQmlParserStatus(PySide6.QtCore.QObject, PySide6.QtQml.QQmlParserStatus): ...


class QPyQmlPropertyValueSource(PySide6.QtCore.QObject, PySide6.QtQml.QQmlPropertyValueSource): ...


class QQmlAbstractUrlInterceptor(Shiboken.Object):

    class DataType(enum.Enum):

        QmlFile                   = 0x0
        JavaScriptFile            = 0x1
        QmldirFile                = 0x2
        UrlString                 = 0x1000


class QQmlApplicationEngine(PySide6.QtQml.QQmlEngine):

    objectCreated            : typing.ClassVar[Signal] = ... # objectCreated(QObject*,QUrl)
    objectCreationFailed     : typing.ClassVar[Signal] = ... # objectCreationFailed(QUrl)


class QQmlComponent(PySide6.QtCore.QObject):

    progressChanged          : typing.ClassVar[Signal] = ... # progressChanged(double)
    statusChanged            : typing.ClassVar[Signal] = ... # statusChanged(QQmlComponent::Status)

    class CompilationMode(enum.Enum):

        PreferSynchronous         = 0x0
        Asynchronous              = 0x1

    class Status(enum.Enum):

        Null                      = 0x0
        Ready                     = 0x1
        Loading                   = 0x2
        Error                     = 0x3


class QQmlContext(PySide6.QtCore.QObject):

    class PropertyPair(Shiboken.Object): ...


class QQmlDebuggingEnabler(Shiboken.Object):

    class StartMode(enum.Enum):

        DoNotWaitForClient        = 0x0
        WaitForClient             = 0x1


class QQmlEngine(PySide6.QtQml.QJSEngine):

    exit                     : typing.ClassVar[Signal] = ... # exit(int)
    offlineStoragePathChanged: typing.ClassVar[Signal] = ... # offlineStoragePathChanged()
    quit                     : typing.ClassVar[Signal] = ... # quit()
    warnings                 : typing.ClassVar[Signal] = ... # warnings(QList<QQmlError>)


class QQmlError(Shiboken.Object): ...
    def __repr__(self, /) -> str: ...


class QQmlExpression(PySide6.QtCore.QObject):

    valueChanged             : typing.ClassVar[Signal] = ... # valueChanged()


class QQmlExtensionInterface(PySide6.QtQml.QQmlTypesExtensionInterface): ...


class QQmlExtensionPlugin(PySide6.QtCore.QObject, PySide6.QtQml.QQmlExtensionInterface): ...


class QQmlFile(Shiboken.Object):

    class Status(enum.Enum):

        Null                      = 0x0
        Ready                     = 0x1
        Error                     = 0x2
        Loading                   = 0x3


class QQmlFileSelector(PySide6.QtCore.QObject): ...


class QQmlImageProviderBase(PySide6.QtCore.QObject):

    class Flag(enum.Flag):

        ForceAsynchronousImageLoading = 0x1

    class ImageType(enum.Enum):

        Invalid                   = 0x0
        Image                     = 0x1
        Pixmap                    = 0x2
        Texture                   = 0x3
        ImageResponse             = 0x4


class QQmlIncubationController(Shiboken.Object): ...


class QQmlIncubator(Shiboken.Object):

    class IncubationMode(enum.Enum):

        Asynchronous              = 0x0
        AsynchronousIfNested      = 0x1
        Synchronous               = 0x2

    class Status(enum.Enum):

        Null                      = 0x0
        Ready                     = 0x1
        Loading                   = 0x2
        Error                     = 0x3


class QQmlListReference(Shiboken.Object): ...


class QQmlModuleImportSpecialVersions(enum.Flag):

    QQmlModuleImportAuto      = -2
    QQmlModuleImportLatest    = -1
    QQmlModuleImportModuleAny = -1


class QQmlNetworkAccessManagerFactory(Shiboken.Object): ...


class QQmlParserStatus(Shiboken.Object): ...


class QQmlProperty(Shiboken.Object):

    class PropertyTypeCategory(enum.Enum):

        InvalidCategory           = 0x0
        List                      = 0x1
        Object                    = 0x2
        Normal                    = 0x3

    class Type(enum.Enum):

        Invalid                   = 0x0
        Property                  = 0x1
        SignalProperty            = 0x2


class QQmlPropertyMap(PySide6.QtCore.QObject):

    valueChanged             : typing.ClassVar[Signal] = ... # valueChanged(QString,QVariant)


class QQmlPropertyValueSource(Shiboken.Object): ...


class QQmlScriptString(Shiboken.Object): ...


class QQmlTypesExtensionInterface(Shiboken.Object): ...


class QmlAttached: ...


class QmlExtended: ...


class QmlForeign: ...


class QmlNamedElement: ...


class QmlUncreatable: ...


class VolatileBool: ...
    def __repr__(self, /) -> str: ...


# eof
