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

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

import PySide6.QtRemoteObjects
import PySide6.QtCore

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


class QAbstractItemModelReplica(PySide6.QtCore.QAbstractItemModel):

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


class QConnectionAbstractServer(PySide6.QtCore.QObject):

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


class QIntList: ...


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


class QRemoteObjectDynamicReplica(PySide6.QtRemoteObjects.QRemoteObjectReplica): ...


class QRemoteObjectHost(PySide6.QtRemoteObjects.QRemoteObjectHostBase):

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


class QRemoteObjectHostBase(PySide6.QtRemoteObjects.QRemoteObjectNode):

    class AllowedSchemas(enum.Enum):

        BuiltInSchemasOnly        = 0x0
        AllowExternalRegistration = 0x1


class QRemoteObjectNode(PySide6.QtCore.QObject):

    error                    : typing.ClassVar[Signal] = ... # error(QRemoteObjectNode::ErrorCode)
    heartbeatIntervalChanged : typing.ClassVar[Signal] = ... # heartbeatIntervalChanged(int)
    remoteObjectAdded        : typing.ClassVar[Signal] = ... # remoteObjectAdded(QRemoteObjectSourceLocation)
    remoteObjectRemoved      : typing.ClassVar[Signal] = ... # remoteObjectRemoved(QRemoteObjectSourceLocation)

    class ErrorCode(enum.Enum):

        NoError                   = 0x0
        RegistryNotAcquired       = 0x1
        RegistryAlreadyHosted     = 0x2
        NodeIsNoServer            = 0x3
        ServerAlreadyCreated      = 0x4
        UnintendedRegistryHosting = 0x5
        OperationNotValidOnClientNode = 0x6
        SourceNotRegistered       = 0x7
        MissingObjectName         = 0x8
        HostUrlInvalid            = 0x9
        ProtocolMismatch          = 0xa
        ListenFailed              = 0xb
        SocketAccessError         = 0xc


class QRemoteObjectPendingCall(Shiboken.Object):

    class Error(enum.Enum):

        NoError                   = 0x0
        InvalidMessage            = 0x1


class QRemoteObjectPendingCallWatcher(PySide6.QtCore.QObject, PySide6.QtRemoteObjects.QRemoteObjectPendingCall):

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


class QRemoteObjectRegistry(PySide6.QtRemoteObjects.QRemoteObjectReplica):

    remoteObjectAdded        : typing.ClassVar[Signal] = ... # remoteObjectAdded(QRemoteObjectSourceLocation)
    remoteObjectRemoved      : typing.ClassVar[Signal] = ... # remoteObjectRemoved(QRemoteObjectSourceLocation)


class QRemoteObjectRegistryHost(PySide6.QtRemoteObjects.QRemoteObjectHostBase): ...


class QRemoteObjectReplica(PySide6.QtCore.QObject):

    initialized              : typing.ClassVar[Signal] = ... # initialized()
    notified                 : typing.ClassVar[Signal] = ... # notified()
    stateChanged             : typing.ClassVar[Signal] = ... # stateChanged(State,State)

    class ConstructorType(enum.IntEnum):

        DefaultConstructor        = 0x0
        ConstructWithNode         = 0x1

    class State(enum.Enum):

        Uninitialized             = 0x0
        Default                   = 0x1
        Valid                     = 0x2
        Suspect                   = 0x3
        SignatureMismatch         = 0x4


class QRemoteObjectSettingsStore(PySide6.QtRemoteObjects.QRemoteObjectAbstractPersistedStore): ...


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


class QtROClientFactory(Shiboken.Object): ...


class QtROClientIoDevice(PySide6.QtRemoteObjects.QtROIoDeviceBase):

    setError                 : typing.ClassVar[Signal] = ... # setError(QRemoteObjectNode::ErrorCode)
    shouldReconnect          : typing.ClassVar[Signal] = ... # shouldReconnect(QtROClientIoDevice*)


class QtROIoDeviceBase(PySide6.QtCore.QObject):

    disconnected             : typing.ClassVar[Signal] = ... # disconnected()
    readyRead                : typing.ClassVar[Signal] = ... # readyRead()


class QtROServerFactory(Shiboken.Object): ...


class QtROServerIoDevice(PySide6.QtRemoteObjects.QtROIoDeviceBase): ...


class QtRemoteObjects(Shiboken.Object):

    class InitialAction(enum.Enum):

        FetchRootSize             = 0x0
        PrefetchData              = 0x1

    class QRemoteObjectPacketTypeEnum(enum.Enum):

        Invalid                   = 0x0
        Handshake                 = 0x1
        InitPacket                = 0x2
        InitDynamicPacket         = 0x3
        AddObject                 = 0x4
        RemoveObject              = 0x5
        InvokePacket              = 0x6
        InvokeReplyPacket         = 0x7
        PropertyChangePacket      = 0x8
        ObjectList                = 0x9
        Ping                      = 0xa
        Pong                      = 0xb


class RepFile: ...


# eof
