"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
from typing import Any, Dict, Optional, Tuple
import PySide6.QtCore
import PySide6.QtScxml

bytes = str


class QScxmlNullDataModel(PySide6.QtScxml.QScxmlDataModel):
    """
    https://doc.qt.io/qt-6/qscxmlnulldatamodel.html

    **Detailed Description**

    This class implements the null data model as described in the **SCXML
    Specification - B.1 The Null Data Model** . Using the value `"null"` for the
    **datamodel** attribute of the `<scxml>` element means that there is no
    underlying data model, but some executable content, like `In(...)` or
    `<log>` can still be used.

    **See also** **QScxmlStateMachine**  and **QScxmlDataModel** .
    """

    def __init__(self, parent: Optional[PySide6.QtCore.QObject] = ...) -> None:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#QScxmlNullDataModel

        **QScxmlNullDataModel::QScxmlNullDataModel(QObject * parent = nullptr)**

        Creates a new Qt SCXML null data model, with the parent object
        **parent**.
        """
        ...

    def evaluateAssignment(self, id: int) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateAssignment

        **[override virtual] void QScxmlNullDataModel::evaluateAssignment(QScxml
        ExecutableContent::EvaluatorId id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateAssignment**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Throws an error and sets **ok** to `false`, because the null data model
        cannot evaluate assignments.
        """
        ...

    def evaluateForeach(
        self, id: int, body: PySide6.QtScxml.QScxmlDataModel.ForeachLoopBody
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateForeach

        **[override virtual] void QScxmlNullDataModel::evaluateForeach(QScxmlExe
        cutableContent::EvaluatorId id , bool * ok ,
        QScxmlDataModel::ForeachLoopBody * body )**

        Reimplements: **QScxmlDataModel::evaluateForeach**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok,
        QScxmlDataModel::ForeachLoopBody *body).

        Throws an error and sets **ok** to `false`, because the null data model
        cannot evaluate `<foreach>` blocks.
        """
        ...

    def evaluateInitialization(self, id: int) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateInitialization

        **[override virtual] void QScxmlNullDataModel::evaluateInitialization(QS
        cxmlExecutableContent::EvaluatorId id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateInitialization**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Throws an error and sets **ok** to `false`, because the null data model
        cannot initialize data.
        """
        ...

    def evaluateToBool(self, id: int) -> Tuple[(bool, bool)]:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateToBool

        **[override virtual] bool
        QScxmlNullDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId
        id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateToBool**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Evaluates the executable content pointed to by **id** and records in
        **ok** whether there was an error. Returns the result of the evaluation
        as a boolean value. The null data model can evaluate the instruction
        `In(...)`, so this might result in an actual value, rather than an
        error.
        """
        ...

    def evaluateToString(self, id: int) -> Tuple[(str, bool)]:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateToString

        **[override virtual] QString QScxmlNullDataModel::evaluateToString(QScxm
        lExecutableContent::EvaluatorId id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateToString**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Evaluates the executable content pointed to by **id** and records in
        **ok** whether there was an error. Returns the result of the evaluation
        as a string. The null data model can evaluate the `<log>` element, so
        this might result in an actual value, rather than an error
        """
        ...

    def evaluateToVariant(self, id: int) -> Tuple[(Any, bool)]:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateToVariant

        **[override virtual] QVariant QScxmlNullDataModel::evaluateToVariant(QSc
        xmlExecutableContent::EvaluatorId id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateToVariant**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Evaluates the executable content pointed to by **id** and records in
        **ok** whether there was an error. As this is the null data model, any
        evaluation will in fact result in an error, with **ok** set to `false`.
        Returns an empty **QVariant** .
        """
        ...

    def evaluateToVoid(self, id: int) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#evaluateToVoid

        **[override virtual] void
        QScxmlNullDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId
        id , bool * ok )**

        Reimplements: **QScxmlDataModel::evaluateToVoid**
        (QScxmlExecutableContent::EvaluatorId id, bool *ok).

        Evaluates the executable content pointed to by **id** and records in
        **ok** whether there was an error. As this is the null data model, any
        evaluation will in fact result in an error, with **ok** set to `false`.
        """
        ...

    def hasScxmlProperty(self, name: str) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#hasScxmlProperty

        **[override virtual] bool QScxmlNullDataModel::hasScxmlProperty(const
        QString & name ) const**

        Reimplements: **QScxmlDataModel::hasScxmlProperty(const QString &name)
        const** .

        Returns `false`, because the null data model does not support
        properties.
        """
        ...

    def scxmlProperty(self, name: str) -> Any:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#scxmlProperty

        **[override virtual] QVariant QScxmlNullDataModel::scxmlProperty(const
        QString & name ) const**

        Reimplements: **QScxmlDataModel::scxmlProperty(const QString &name)
        const** .

        Returns an invalid variant, because the null data model does not support
        properties.

        **See also** **setScxmlProperty** ().
        """
        ...

    def setScxmlEvent(self, event: PySide6.QtScxml.QScxmlEvent) -> None:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#setScxmlEvent

        **[override virtual] void QScxmlNullDataModel::setScxmlEvent(const
        QScxmlEvent & event )**

        Reimplements: **QScxmlDataModel::setScxmlEvent** (const QScxmlEvent
        &event).

        Does not actually set the **event** , because the null data model does
        not handle events.
        """
        ...

    def setScxmlProperty(self, name: str, value: Any, context: str) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#setScxmlProperty

        **[override virtual] bool QScxmlNullDataModel::setScxmlProperty(const
        QString & name , const QVariant & value , const QString & context )**

        Reimplements: **QScxmlDataModel::setScxmlProperty** (const QString
        &name, const QVariant &value, const QString &context).

        Returns `false`, because the null data model does not support
        properties.

        **See also** **scxmlProperty** ().
        """
        ...

    def setup(self, initialDataValues: Dict[(str, Any)]) -> bool:
        """
        https://doc.qt.io/qt-6/qscxmlnulldatamodel.html#setup

        **[override virtual invokable] bool QScxmlNullDataModel::setup(const
        QVariantMap & initialDataValues )**

        Reimplements: **QScxmlDataModel::setup** (const QVariantMap
        &initialDataValues).
        """
        ...
