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

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

import PySide6.QtStateMachine
import PySide6.QtCore

import enum
import typing
from PySide6.QtCore import Signal


class QAbstractState(PySide6.QtCore.QObject):

    activeChanged            : typing.ClassVar[Signal] = ... # activeChanged(bool)
    entered                  : typing.ClassVar[Signal] = ... # entered()
    exited                   : typing.ClassVar[Signal] = ... # exited()


class QAbstractTransition(PySide6.QtCore.QObject):

    targetStateChanged       : typing.ClassVar[Signal] = ... # targetStateChanged()
    targetStatesChanged      : typing.ClassVar[Signal] = ... # targetStatesChanged()
    triggered                : typing.ClassVar[Signal] = ... # triggered()

    class TransitionType(enum.Enum):

        ExternalTransition        = 0x0
        InternalTransition        = 0x1


class QEventTransition(PySide6.QtStateMachine.QAbstractTransition): ...


class QFinalState(PySide6.QtStateMachine.QAbstractState): ...


class QHistoryState(PySide6.QtStateMachine.QAbstractState):

    defaultStateChanged      : typing.ClassVar[Signal] = ... # defaultStateChanged()
    defaultTransitionChanged : typing.ClassVar[Signal] = ... # defaultTransitionChanged()
    historyTypeChanged       : typing.ClassVar[Signal] = ... # historyTypeChanged()

    class HistoryType(enum.Enum):

        ShallowHistory            = 0x0
        DeepHistory               = 0x1


class QIntList: ...


class QKeyEventTransition(PySide6.QtStateMachine.QEventTransition): ...


class QMouseEventTransition(PySide6.QtStateMachine.QEventTransition): ...


class QSignalTransition(PySide6.QtStateMachine.QAbstractTransition):

    senderObjectChanged      : typing.ClassVar[Signal] = ... # senderObjectChanged()
    signalChanged            : typing.ClassVar[Signal] = ... # signalChanged()


class QState(PySide6.QtStateMachine.QAbstractState):

    childModeChanged         : typing.ClassVar[Signal] = ... # childModeChanged()
    errorStateChanged        : typing.ClassVar[Signal] = ... # errorStateChanged()
    finished                 : typing.ClassVar[Signal] = ... # finished()
    initialStateChanged      : typing.ClassVar[Signal] = ... # initialStateChanged()
    propertiesAssigned       : typing.ClassVar[Signal] = ... # propertiesAssigned()

    class ChildMode(enum.Enum):

        ExclusiveStates           = 0x0
        ParallelStates            = 0x1

    class RestorePolicy(enum.Enum):

        DontRestoreProperties     = 0x0
        RestoreProperties         = 0x1


class QStateMachine(PySide6.QtStateMachine.QState):

    runningChanged           : typing.ClassVar[Signal] = ... # runningChanged(bool)
    started                  : typing.ClassVar[Signal] = ... # started()
    stopped                  : typing.ClassVar[Signal] = ... # stopped()

    class Error(enum.Enum):

        NoError                   = 0x0
        NoInitialStateError       = 0x1
        NoDefaultStateInHistoryStateError = 0x2
        NoCommonAncestorForTransitionError = 0x3
        StateMachineChildModeSetToParallelError = 0x4

    class EventPriority(enum.Enum):

        NormalPriority            = 0x0
        HighPriority              = 0x1

    class SignalEvent(PySide6.QtCore.QEvent): ...

    class WrappedEvent(PySide6.QtCore.QEvent): ...


# eof
