# 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.QtDBus, except for defaults which are replaced by "...".
"""

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

import PySide6.QtDBus
import PySide6.QtCore

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


class QDBus(Shiboken.Object):

    class CallMode(enum.Enum):

        NoBlock                   = 0x0
        Block                     = 0x1
        BlockWithGui              = 0x2
        AutoDetect                = 0x3


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


class QDBusAbstractInterface(PySide6.QtDBus.QDBusAbstractInterfaceBase): ...


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


class QDBusArgument(Shiboken.Object):

    class ElementType(enum.Enum):

        UnknownType               = -1
        BasicType                 = 0x0
        VariantType               = 0x1
        ArrayType                 = 0x2
        StructureType             = 0x3
        MapType                   = 0x4
        MapEntryType              = 0x5


class QDBusConnection(Shiboken.Object):

    class BusType(enum.Enum):

        SessionBus                = 0x0
        SystemBus                 = 0x1
        ActivationBus             = 0x2

    class ConnectionCapability(enum.Flag):

        UnixFileDescriptorPassing = 0x1

    class RegisterOption(enum.Flag):

        ExportAdaptors            = 0x1
        ExportScriptableSlots     = 0x10
        ExportScriptableSignals   = 0x20
        ExportScriptableProperties = 0x40
        ExportScriptableInvokables = 0x80
        ExportScriptableContents  = 0xf0
        ExportNonScriptableSlots  = 0x100
        ExportAllSlots            = 0x110
        ExportNonScriptableSignals = 0x200
        ExportAllSignal           = 0x220
        ExportAllSignals          = 0x220
        ExportNonScriptableProperties = 0x400
        ExportAllProperties       = 0x440
        ExportNonScriptableInvokables = 0x800
        ExportAllInvokables       = 0x880
        ExportNonScriptableContents = 0xf00
        ExportAllContents         = 0xff0
        ExportChildObjects        = 0x1000

    class UnregisterMode(enum.Enum):

        UnregisterNode            = 0x0
        UnregisterTree            = 0x1

    class VirtualObjectRegisterOption(enum.Flag):

        SingleNode                = 0x0
        SubPath                   = 0x1


class QDBusConnectionInterface(PySide6.QtDBus.QDBusAbstractInterface):

    NameAcquired             : typing.ClassVar[Signal] = ... # NameAcquired(QString)
    NameLost                 : typing.ClassVar[Signal] = ... # NameLost(QString)
    NameOwnerChanged         : typing.ClassVar[Signal] = ... # NameOwnerChanged(QString,QString,QString)
    callWithCallbackFailed   : typing.ClassVar[Signal] = ... # callWithCallbackFailed(QDBusError,QDBusMessage)
    serviceOwnerChanged      : typing.ClassVar[Signal] = ... # serviceOwnerChanged(QString,QString,QString)
    serviceRegistered        : typing.ClassVar[Signal] = ... # serviceRegistered(QString)
    serviceUnregistered      : typing.ClassVar[Signal] = ... # serviceUnregistered(QString)

    class RegisterServiceReply(enum.Enum):

        ServiceNotRegistered      = 0x0
        ServiceRegistered         = 0x1
        ServiceQueued             = 0x2

    class ServiceQueueOptions(enum.Enum):

        DontQueueService          = 0x0
        QueueService              = 0x1
        ReplaceExistingService    = 0x2

    class ServiceReplacementOptions(enum.Enum):

        DontAllowReplacement      = 0x0
        AllowReplacement          = 0x1


class QDBusContext(Shiboken.Object): ...


class QDBusError(Shiboken.Object):

    class ErrorType(enum.Enum):

        NoError                   = 0x0
        Other                     = 0x1
        Failed                    = 0x2
        NoMemory                  = 0x3
        ServiceUnknown            = 0x4
        NoReply                   = 0x5
        BadAddress                = 0x6
        NotSupported              = 0x7
        LimitsExceeded            = 0x8
        AccessDenied              = 0x9
        NoServer                  = 0xa
        Timeout                   = 0xb
        NoNetwork                 = 0xc
        AddressInUse              = 0xd
        Disconnected              = 0xe
        InvalidArgs               = 0xf
        UnknownMethod             = 0x10
        TimedOut                  = 0x11
        InvalidSignature          = 0x12
        UnknownInterface          = 0x13
        UnknownObject             = 0x14
        UnknownProperty           = 0x15
        PropertyReadOnly          = 0x16
        InternalError             = 0x17
        InvalidService            = 0x18
        InvalidObjectPath         = 0x19
        InvalidInterface          = 0x1a
        InvalidMember             = 0x1b
        LastErrorType             = 0x1b


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


class QDBusInterface(PySide6.QtDBus.QDBusAbstractInterface): ...


class QDBusMessage(Shiboken.Object):

    class MessageType(enum.Enum):

        InvalidMessage            = 0x0
        MethodCallMessage         = 0x1
        ReplyMessage              = 0x2
        ErrorMessage              = 0x3
        SignalMessage             = 0x4


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


class QDBusObjectPath(Shiboken.Object): ...


class QDBusPendingCall(Shiboken.Object): ...


class QDBusPendingCallWatcher(PySide6.QtCore.QObject, PySide6.QtDBus.QDBusPendingCall):

    finished                 : typing.ClassVar[Signal] = ... # finished(); finished(QDBusPendingCallWatcher*)


class QDBusReply(Shiboken.Object): ...


class QDBusServer(PySide6.QtCore.QObject):

    newConnection            : typing.ClassVar[Signal] = ... # newConnection(QDBusConnection)


class QDBusServiceWatcher(PySide6.QtCore.QObject):

    serviceOwnerChanged      : typing.ClassVar[Signal] = ... # serviceOwnerChanged(QString,QString,QString)
    serviceRegistered        : typing.ClassVar[Signal] = ... # serviceRegistered(QString)
    serviceUnregistered      : typing.ClassVar[Signal] = ... # serviceUnregistered(QString)

    class WatchModeFlag(enum.Flag):

        WatchForRegistration      = 0x1
        WatchForUnregistration    = 0x2
        WatchForOwnerChange       = 0x3


class QDBusSignature(Shiboken.Object): ...


class QDBusUnixFileDescriptor(Shiboken.Object): ...


class QDBusVariant(Shiboken.Object): ...


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


class QIntList: ...


# eof
