/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#ifndef QPROTOBUF_QTCORE_H
#define QPROTOBUF_QTCORE_H

#include <QtProtobuf/qprotobufmessage.h>
#include <QtProtobuf/qprotobufobject.h>
#include <QtProtobuf/qprotobuflazymessagepointer.h>

#include <QtCore/qbytearray.h>
#include <QtCore/qstring.h>
#include <QtProtobuf/qprotobufoneof.h>

#include <QtCore/qmetatype.h>
#include <QtCore/qlist.h>
#include <QtCore/qshareddata.h>

#include <memory>

#if defined(QT_SHARED) || !defined(QT_STATIC)
#  if defined(QT_BUILD_PROTOBUFQTCORETYPES_LIB)
#    define QPB_PROTOBUFQTCORETYPES_EXPORT Q_DECL_EXPORT
#  else
#    define QPB_PROTOBUFQTCORETYPES_EXPORT Q_DECL_IMPORT
#  endif
#else
#  define QPB_PROTOBUFQTCORETYPES_EXPORT
#endif

QT_BEGIN_NAMESPACE
namespace QtProtobufPrivate::QtCore {
class QUrl;
using QUrlRepeated = QList<QUrl>;
class QChar;
using QCharRepeated = QList<QChar>;
class QUuid;
using QUuidRepeated = QList<QUuid>;
class QTimeZone;
using QTimeZoneRepeated = QList<QTimeZone>;
class QTime;
using QTimeRepeated = QList<QTime>;
class QDate;
using QDateRepeated = QList<QDate>;
class QDateTime;
using QDateTimeRepeated = QList<QDateTime>;
class QSize;
using QSizeRepeated = QList<QSize>;
class QSizeF;
using QSizeFRepeated = QList<QSizeF>;
class QPoint;
using QPointRepeated = QList<QPoint>;
class QPointF;
using QPointFRepeated = QList<QPointF>;
class QRect;
using QRectRepeated = QList<QRect>;
class QRectF;
using QRectFRepeated = QList<QRectF>;
class QVersionNumber;
using QVersionNumberRepeated = QList<QVersionNumber>;

class QUrl_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QUrl : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QUrl)
    Q_PROPERTY(QString url READ url WRITE setUrl SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        UrlProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QUrl();
    ~QUrl();
    QUrl(const QUrl &other);
    QUrl &operator =(const QUrl &other);
    QUrl(QUrl &&other) noexcept;
    QUrl &operator =(QUrl &&other) noexcept;
    bool operator ==(const QUrl &other) const;
    bool operator !=(const QUrl &other) const;

    QString url() const;
    void setUrl(const QString &url);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QUrl_QtProtobufData> dptr;
};

class QChar_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QChar : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QChar)
    Q_PROPERTY(QtProtobuf::uint32 utf16CodePoint READ utf16CodePoint WRITE setUtf16CodePoint SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        Utf16CodePointProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QChar();
    ~QChar();
    QChar(const QChar &other);
    QChar &operator =(const QChar &other);
    QChar(QChar &&other) noexcept;
    QChar &operator =(QChar &&other) noexcept;
    bool operator ==(const QChar &other) const;
    bool operator !=(const QChar &other) const;

    QtProtobuf::uint32 utf16CodePoint() const;
    void setUtf16CodePoint(const QtProtobuf::uint32 &utf16CodePoint);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QChar_QtProtobufData> dptr;
};

class QUuid_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QUuid : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QUuid)
    Q_PROPERTY(QByteArray rfc4122Uuid READ rfc4122Uuid WRITE setRfc4122Uuid SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        Rfc4122UuidProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QUuid();
    ~QUuid();
    QUuid(const QUuid &other);
    QUuid &operator =(const QUuid &other);
    QUuid(QUuid &&other) noexcept;
    QUuid &operator =(QUuid &&other) noexcept;
    bool operator ==(const QUuid &other) const;
    bool operator !=(const QUuid &other) const;

    QByteArray rfc4122Uuid() const;
    void setRfc4122Uuid(const QByteArray &rfc4122Uuid);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QUuid_QtProtobufData> dptr;
};

class QTimeZone_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QTimeZone : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QTimeZone)
    Q_PROPERTY(QtProtobuf::int32 offsetSeconds READ offsetSeconds_p WRITE setOffsetSeconds_p)
    Q_PROPERTY(bool hasOffsetSeconds READ hasOffsetSeconds)
    Q_PROPERTY(QByteArray ianaId READ ianaId_p WRITE setIanaId_p)
    Q_PROPERTY(bool hasIanaId READ hasIanaId)
    Q_PROPERTY(TimeSpec timeSpec READ timeSpec_p WRITE setTimeSpec_p)
    Q_PROPERTY(bool hasTimeSpec READ hasTimeSpec)

public:
    enum QtProtobufFieldEnum {
        OffsetSecondsProtoFieldNumber = 1,
        IanaIdProtoFieldNumber = 2,
        TimeSpecProtoFieldNumber = 3,
    };
    Q_ENUM(QtProtobufFieldEnum)

    enum TimeSpec {
        LocalTime = 0,
        UTC = 1,
    };
    Q_ENUM(TimeSpec)
    using TimeSpecRepeated = QList<TimeSpec>;
    enum class TimeZoneFields {
        UninitializedField = QtProtobuf::InvalidFieldNumber,
        OffsetSeconds = 1,
        IanaId = 2,
        TimeSpec = 3,
    };
    Q_ENUM(TimeZoneFields)

    QTimeZone();
    ~QTimeZone();
    QTimeZone(const QTimeZone &other);
    QTimeZone &operator =(const QTimeZone &other);
    QTimeZone(QTimeZone &&other) noexcept;
    QTimeZone &operator =(QTimeZone &&other) noexcept;
    bool operator ==(const QTimeZone &other) const;
    bool operator !=(const QTimeZone &other) const;

    bool hasOffsetSeconds() const;
    QtProtobuf::int32 offsetSeconds() const;

    bool hasIanaId() const;
    QByteArray ianaId() const;

    bool hasTimeSpec() const;
    QTimeZone::TimeSpec timeSpec() const;
    TimeZoneFields timeZoneField() const;
    void setOffsetSeconds(const QtProtobuf::int32 &offsetSeconds);
    void setIanaId(const QByteArray &ianaId);
    void setTimeSpec(const QTimeZone::TimeSpec &timeSpec);
    void clearTimeZone();
    static void registerTypes();

private:
    QtProtobuf::int32 offsetSeconds_p() const;
    QByteArray ianaId_p() const;
    QTimeZone::TimeSpec timeSpec_p() const;
    void setOffsetSeconds_p(QtProtobuf::int32 offsetSeconds);
    void setIanaId_p(QByteArray ianaId);
    void setTimeSpec_p(QTimeZone::TimeSpec timeSpec);
    QExplicitlySharedDataPointer<QTimeZone_QtProtobufData> dptr;
};

class QTime_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QTime : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QTime)
    Q_PROPERTY(QtProtobuf::int32 millisecondsSinceMidnight READ millisecondsSinceMidnight WRITE setMillisecondsSinceMidnight SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        MillisecondsSinceMidnightProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QTime();
    ~QTime();
    QTime(const QTime &other);
    QTime &operator =(const QTime &other);
    QTime(QTime &&other) noexcept;
    QTime &operator =(QTime &&other) noexcept;
    bool operator ==(const QTime &other) const;
    bool operator !=(const QTime &other) const;

    QtProtobuf::int32 millisecondsSinceMidnight() const;
    void setMillisecondsSinceMidnight(const QtProtobuf::int32 &millisecondsSinceMidnight);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QTime_QtProtobufData> dptr;
};

class QDate_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QDate : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QDate)
    Q_PROPERTY(QtProtobuf::int64 julianDay READ julianDay WRITE setJulianDay SCRIPTABLE false)

public:
    enum QtProtobufFieldEnum {
        JulianDayProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QDate();
    ~QDate();
    QDate(const QDate &other);
    QDate &operator =(const QDate &other);
    QDate(QDate &&other) noexcept;
    QDate &operator =(QDate &&other) noexcept;
    bool operator ==(const QDate &other) const;
    bool operator !=(const QDate &other) const;

    QtProtobuf::int64 julianDay() const;
    void setJulianDay(const QtProtobuf::int64 &julianDay);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QDate_QtProtobufData> dptr;
};

class QDateTime_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QDateTime : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QDateTime)
    Q_PROPERTY(QtProtobuf::int64 utcMsecsSinceUnixEpoch READ utcMsecsSinceUnixEpoch WRITE setUtcMsecsSinceUnixEpoch SCRIPTABLE false)
    Q_PROPERTY(QtProtobufPrivate::QtCore::QTimeZone *timeZone_p READ timeZone_p WRITE setTimeZone_p SCRIPTABLE false)

public:
    enum QtProtobufFieldEnum {
        UtcMsecsSinceUnixEpochProtoFieldNumber = 1,
        TimeZoneProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QDateTime();
    ~QDateTime();
    QDateTime(const QDateTime &other);
    QDateTime &operator =(const QDateTime &other);
    QDateTime(QDateTime &&other) noexcept;
    QDateTime &operator =(QDateTime &&other) noexcept;
    bool operator ==(const QDateTime &other) const;
    bool operator !=(const QDateTime &other) const;

    QtProtobuf::int64 utcMsecsSinceUnixEpoch() const;

    QTimeZone &timeZone() const;
    void setUtcMsecsSinceUnixEpoch(const QtProtobuf::int64 &utcMsecsSinceUnixEpoch);
    void setTimeZone(const QTimeZone &timeZone);
    static void registerTypes();

private:
    QTimeZone *timeZone_p() const;
    void setTimeZone_p(QTimeZone *timeZone);
    QExplicitlySharedDataPointer<QDateTime_QtProtobufData> dptr;
};

class QSize_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QSize : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QSize)
    Q_PROPERTY(QtProtobuf::int32 width READ width WRITE setWidth SCRIPTABLE true)
    Q_PROPERTY(QtProtobuf::int32 height READ height WRITE setHeight SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        WidthProtoFieldNumber = 1,
        HeightProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QSize();
    ~QSize();
    QSize(const QSize &other);
    QSize &operator =(const QSize &other);
    QSize(QSize &&other) noexcept;
    QSize &operator =(QSize &&other) noexcept;
    bool operator ==(const QSize &other) const;
    bool operator !=(const QSize &other) const;

    QtProtobuf::int32 width() const;

    QtProtobuf::int32 height() const;
    void setWidth(const QtProtobuf::int32 &width);
    void setHeight(const QtProtobuf::int32 &height);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QSize_QtProtobufData> dptr;
};

class QSizeF_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QSizeF : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QSizeF)
    Q_PROPERTY(double width READ width WRITE setWidth SCRIPTABLE true)
    Q_PROPERTY(double height READ height WRITE setHeight SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        WidthProtoFieldNumber = 1,
        HeightProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QSizeF();
    ~QSizeF();
    QSizeF(const QSizeF &other);
    QSizeF &operator =(const QSizeF &other);
    QSizeF(QSizeF &&other) noexcept;
    QSizeF &operator =(QSizeF &&other) noexcept;
    bool operator ==(const QSizeF &other) const;
    bool operator !=(const QSizeF &other) const;

    double width() const;

    double height() const;
    void setWidth(const double &width);
    void setHeight(const double &height);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QSizeF_QtProtobufData> dptr;
};

class QPoint_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QPoint : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QPoint)
    Q_PROPERTY(QtProtobuf::sint32 x READ x WRITE setX SCRIPTABLE true)
    Q_PROPERTY(QtProtobuf::sint32 y READ y WRITE setY SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XProtoFieldNumber = 1,
        YProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QPoint();
    ~QPoint();
    QPoint(const QPoint &other);
    QPoint &operator =(const QPoint &other);
    QPoint(QPoint &&other) noexcept;
    QPoint &operator =(QPoint &&other) noexcept;
    bool operator ==(const QPoint &other) const;
    bool operator !=(const QPoint &other) const;

    QtProtobuf::sint32 x() const;

    QtProtobuf::sint32 y() const;
    void setX(const QtProtobuf::sint32 &x);
    void setY(const QtProtobuf::sint32 &y);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QPoint_QtProtobufData> dptr;
};

class QPointF_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QPointF : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QPointF)
    Q_PROPERTY(double x READ x WRITE setX SCRIPTABLE true)
    Q_PROPERTY(double y READ y WRITE setY SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XProtoFieldNumber = 1,
        YProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QPointF();
    ~QPointF();
    QPointF(const QPointF &other);
    QPointF &operator =(const QPointF &other);
    QPointF(QPointF &&other) noexcept;
    QPointF &operator =(QPointF &&other) noexcept;
    bool operator ==(const QPointF &other) const;
    bool operator !=(const QPointF &other) const;

    double x() const;

    double y() const;
    void setX(const double &x);
    void setY(const double &y);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QPointF_QtProtobufData> dptr;
};

class QRect_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QRect : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QRect)
    Q_PROPERTY(QtProtobuf::sint32 x READ x WRITE setX SCRIPTABLE true)
    Q_PROPERTY(QtProtobuf::sint32 y READ y WRITE setY SCRIPTABLE true)
    Q_PROPERTY(QtProtobuf::int32 width READ width WRITE setWidth SCRIPTABLE true)
    Q_PROPERTY(QtProtobuf::int32 height READ height WRITE setHeight SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XProtoFieldNumber = 1,
        YProtoFieldNumber = 2,
        WidthProtoFieldNumber = 3,
        HeightProtoFieldNumber = 4,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QRect();
    ~QRect();
    QRect(const QRect &other);
    QRect &operator =(const QRect &other);
    QRect(QRect &&other) noexcept;
    QRect &operator =(QRect &&other) noexcept;
    bool operator ==(const QRect &other) const;
    bool operator !=(const QRect &other) const;

    QtProtobuf::sint32 x() const;

    QtProtobuf::sint32 y() const;

    QtProtobuf::int32 width() const;

    QtProtobuf::int32 height() const;
    void setX(const QtProtobuf::sint32 &x);
    void setY(const QtProtobuf::sint32 &y);
    void setWidth(const QtProtobuf::int32 &width);
    void setHeight(const QtProtobuf::int32 &height);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QRect_QtProtobufData> dptr;
};

class QRectF_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QRectF : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QRectF)
    Q_PROPERTY(double x READ x WRITE setX SCRIPTABLE true)
    Q_PROPERTY(double y READ y WRITE setY SCRIPTABLE true)
    Q_PROPERTY(double width READ width WRITE setWidth SCRIPTABLE true)
    Q_PROPERTY(double height READ height WRITE setHeight SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XProtoFieldNumber = 1,
        YProtoFieldNumber = 2,
        WidthProtoFieldNumber = 3,
        HeightProtoFieldNumber = 4,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QRectF();
    ~QRectF();
    QRectF(const QRectF &other);
    QRectF &operator =(const QRectF &other);
    QRectF(QRectF &&other) noexcept;
    QRectF &operator =(QRectF &&other) noexcept;
    bool operator ==(const QRectF &other) const;
    bool operator !=(const QRectF &other) const;

    double x() const;

    double y() const;

    double width() const;

    double height() const;
    void setX(const double &x);
    void setY(const double &y);
    void setWidth(const double &width);
    void setHeight(const double &height);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QRectF_QtProtobufData> dptr;
};

class QVersionNumber_QtProtobufData;
class QPB_PROTOBUFQTCORETYPES_EXPORT QVersionNumber : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QVersionNumber)
    Q_PROPERTY(QtProtobuf::int32List segments READ segments WRITE setSegments SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        SegmentsProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QVersionNumber();
    ~QVersionNumber();
    QVersionNumber(const QVersionNumber &other);
    QVersionNumber &operator =(const QVersionNumber &other);
    QVersionNumber(QVersionNumber &&other) noexcept;
    QVersionNumber &operator =(QVersionNumber &&other) noexcept;
    bool operator ==(const QVersionNumber &other) const;
    bool operator !=(const QVersionNumber &other) const;

    QtProtobuf::int32List segments() const;
    QtProtobuf::int32List &segments();
    void setSegments(const QtProtobuf::int32List &segments);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QVersionNumber_QtProtobufData> dptr;
};
} // namespace QtProtobufPrivate::QtCore
QT_END_NAMESPACE

Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QUrl)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QChar)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QUuid)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QTimeZone)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QTime)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QDate)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QDateTime)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QSize)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QSizeF)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QPoint)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QPointF)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QRect)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QRectF)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtCore::QVersionNumber)
#endif // QPROTOBUF_QTCORE_H
