<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Generated from protobuf message <code>proto.WebMessageInfo</code>
 */
class WebMessageInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.MessageKey key = 1;</code>
     */
    protected $key = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message message = 2;</code>
     */
    protected $message = null;
    /**
     * Generated from protobuf field <code>optional uint64 messageTimestamp = 3;</code>
     */
    protected $messageTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.Status status = 4;</code>
     */
    protected $status = null;
    /**
     * Generated from protobuf field <code>optional string participant = 5;</code>
     */
    protected $participant = null;
    /**
     * Generated from protobuf field <code>optional uint64 messageC2STimestamp = 6;</code>
     */
    protected $messageC2STimestamp = null;
    /**
     * Generated from protobuf field <code>optional bool ignore = 16;</code>
     */
    protected $ignore = null;
    /**
     * Generated from protobuf field <code>optional bool starred = 17;</code>
     */
    protected $starred = null;
    /**
     * Generated from protobuf field <code>optional bool broadcast = 18;</code>
     */
    protected $broadcast = null;
    /**
     * Generated from protobuf field <code>optional string pushName = 19;</code>
     */
    protected $pushName = null;
    /**
     * Generated from protobuf field <code>optional bytes mediaCiphertextSha256 = 20;</code>
     */
    protected $mediaCiphertextSha256 = null;
    /**
     * Generated from protobuf field <code>optional bool multicast = 21;</code>
     */
    protected $multicast = null;
    /**
     * Generated from protobuf field <code>optional bool urlText = 22;</code>
     */
    protected $urlText = null;
    /**
     * Generated from protobuf field <code>optional bool urlNumber = 23;</code>
     */
    protected $urlNumber = null;
    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.StubType messageStubType = 24;</code>
     */
    protected $messageStubType = null;
    /**
     * Generated from protobuf field <code>optional bool clearMedia = 25;</code>
     */
    protected $clearMedia = null;
    /**
     * Generated from protobuf field <code>repeated string messageStubParameters = 26;</code>
     */
    private $messageStubParameters;
    /**
     * Generated from protobuf field <code>optional uint32 duration = 27;</code>
     */
    protected $duration = null;
    /**
     * Generated from protobuf field <code>repeated string labels = 28;</code>
     */
    private $labels;
    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo paymentInfo = 29;</code>
     */
    protected $paymentInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage finalLiveLocation = 30;</code>
     */
    protected $finalLiveLocation = null;
    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo quotedPaymentInfo = 31;</code>
     */
    protected $quotedPaymentInfo = null;
    /**
     * Generated from protobuf field <code>optional uint64 ephemeralStartTimestamp = 32;</code>
     */
    protected $ephemeralStartTimestamp = null;
    /**
     * Generated from protobuf field <code>optional uint32 ephemeralDuration = 33;</code>
     */
    protected $ephemeralDuration = null;
    /**
     * Generated from protobuf field <code>optional bool ephemeralOffToOn = 34;</code>
     */
    protected $ephemeralOffToOn = null;
    /**
     * Generated from protobuf field <code>optional bool ephemeralOutOfSync = 35;</code>
     */
    protected $ephemeralOutOfSync = null;
    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.BizPrivacyStatus bizPrivacyStatus = 36;</code>
     */
    protected $bizPrivacyStatus = null;
    /**
     * Generated from protobuf field <code>optional string verifiedBizName = 37;</code>
     */
    protected $verifiedBizName = null;
    /**
     * Generated from protobuf field <code>optional .proto.MediaData mediaData = 38;</code>
     */
    protected $mediaData = null;
    /**
     * Generated from protobuf field <code>optional .proto.PhotoChange photoChange = 39;</code>
     */
    protected $photoChange = null;
    /**
     * Generated from protobuf field <code>repeated .proto.UserReceipt userReceipt = 40;</code>
     */
    private $userReceipt;
    /**
     * Generated from protobuf field <code>repeated .proto.Reaction reactions = 41;</code>
     */
    private $reactions;
    /**
     * Generated from protobuf field <code>optional .proto.MediaData quotedStickerData = 42;</code>
     */
    protected $quotedStickerData = null;
    /**
     * Generated from protobuf field <code>optional bytes futureproofData = 43;</code>
     */
    protected $futureproofData = null;
    /**
     * Generated from protobuf field <code>optional .proto.StatusPSA statusPsa = 44;</code>
     */
    protected $statusPsa = null;
    /**
     * Generated from protobuf field <code>repeated .proto.PollUpdate pollUpdates = 45;</code>
     */
    private $pollUpdates;
    /**
     * Generated from protobuf field <code>optional .proto.PollAdditionalMetadata pollAdditionalMetadata = 46;</code>
     */
    protected $pollAdditionalMetadata = null;
    /**
     * Generated from protobuf field <code>optional string agentId = 47;</code>
     */
    protected $agentId = null;
    /**
     * Generated from protobuf field <code>optional bool statusAlreadyViewed = 48;</code>
     */
    protected $statusAlreadyViewed = null;
    /**
     * Generated from protobuf field <code>optional bytes messageSecret = 49;</code>
     */
    protected $messageSecret = null;
    /**
     * Generated from protobuf field <code>optional .proto.KeepInChat keepInChat = 50;</code>
     */
    protected $keepInChat = null;
    /**
     * Generated from protobuf field <code>optional string originalSelfAuthorUserJidString = 51;</code>
     */
    protected $originalSelfAuthorUserJidString = null;
    /**
     * Generated from protobuf field <code>optional uint64 revokeMessageTimestamp = 52;</code>
     */
    protected $revokeMessageTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.PinInChat pinInChat = 54;</code>
     */
    protected $pinInChat = null;
    /**
     * Generated from protobuf field <code>optional .proto.PremiumMessageInfo premiumMessageInfo = 55;</code>
     */
    protected $premiumMessageInfo = null;
    /**
     * Generated from protobuf field <code>optional bool is1PBizBotMessage = 56;</code>
     */
    protected $is1PBizBotMessage = null;
    /**
     * Generated from protobuf field <code>optional bool isGroupHistoryMessage = 57;</code>
     */
    protected $isGroupHistoryMessage = null;
    /**
     * Generated from protobuf field <code>optional string botMessageInvokerJid = 58;</code>
     */
    protected $botMessageInvokerJid = null;
    /**
     * Generated from protobuf field <code>optional .proto.CommentMetadata commentMetadata = 59;</code>
     */
    protected $commentMetadata = null;
    /**
     * Generated from protobuf field <code>repeated .proto.EventResponse eventResponses = 61;</code>
     */
    private $eventResponses;
    /**
     * Generated from protobuf field <code>optional .proto.ReportingTokenInfo reportingTokenInfo = 62;</code>
     */
    protected $reportingTokenInfo = null;
    /**
     * Generated from protobuf field <code>optional uint64 newsletterServerId = 63;</code>
     */
    protected $newsletterServerId = null;
    /**
     * Generated from protobuf field <code>optional .proto.EventAdditionalMetadata eventAdditionalMetadata = 64;</code>
     */
    protected $eventAdditionalMetadata = null;
    /**
     * Generated from protobuf field <code>optional bool isMentionedInStatus = 65;</code>
     */
    protected $isMentionedInStatus = null;
    /**
     * Generated from protobuf field <code>repeated string statusMentions = 66;</code>
     */
    private $statusMentions;
    /**
     * Generated from protobuf field <code>optional .proto.MessageKey targetMessageId = 67;</code>
     */
    protected $targetMessageId = null;
    /**
     * Generated from protobuf field <code>repeated .proto.MessageAddOn messageAddOns = 68;</code>
     */
    private $messageAddOns;
    /**
     * Generated from protobuf field <code>optional .proto.StatusMentionMessage statusMentionMessageInfo = 69;</code>
     */
    protected $statusMentionMessageInfo = null;
    /**
     * Generated from protobuf field <code>optional bool isSupportAiMessage = 70;</code>
     */
    protected $isSupportAiMessage = null;
    /**
     * Generated from protobuf field <code>repeated string statusMentionSources = 71;</code>
     */
    private $statusMentionSources;
    /**
     * Generated from protobuf field <code>repeated .proto.Citation supportAiCitations = 72;</code>
     */
    private $supportAiCitations;
    /**
     * Generated from protobuf field <code>optional string botTargetId = 73;</code>
     */
    protected $botTargetId = null;
    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryIndividualMessageInfo groupHistoryIndividualMessageInfo = 74;</code>
     */
    protected $groupHistoryIndividualMessageInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryBundleInfo groupHistoryBundleInfo = 75;</code>
     */
    protected $groupHistoryBundleInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.InteractiveMessageAdditionalMetadata interactiveMessageAdditionalMetadata = 76;</code>
     */
    protected $interactiveMessageAdditionalMetadata = null;
    /**
     * Generated from protobuf field <code>optional .proto.QuarantinedMessage quarantinedMessage = 77;</code>
     */
    protected $quarantinedMessage = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \PhpWA\Protocol\Proto\MessageKey $key
     *     @type \PhpWA\Protocol\Proto\Message $message
     *     @type int|string $messageTimestamp
     *     @type int $status
     *     @type string $participant
     *     @type int|string $messageC2STimestamp
     *     @type bool $ignore
     *     @type bool $starred
     *     @type bool $broadcast
     *     @type string $pushName
     *     @type string $mediaCiphertextSha256
     *     @type bool $multicast
     *     @type bool $urlText
     *     @type bool $urlNumber
     *     @type int $messageStubType
     *     @type bool $clearMedia
     *     @type string[] $messageStubParameters
     *     @type int $duration
     *     @type string[] $labels
     *     @type \PhpWA\Protocol\Proto\PaymentInfo $paymentInfo
     *     @type \PhpWA\Protocol\Proto\Message\LiveLocationMessage $finalLiveLocation
     *     @type \PhpWA\Protocol\Proto\PaymentInfo $quotedPaymentInfo
     *     @type int|string $ephemeralStartTimestamp
     *     @type int $ephemeralDuration
     *     @type bool $ephemeralOffToOn
     *     @type bool $ephemeralOutOfSync
     *     @type int $bizPrivacyStatus
     *     @type string $verifiedBizName
     *     @type \PhpWA\Protocol\Proto\MediaData $mediaData
     *     @type \PhpWA\Protocol\Proto\PhotoChange $photoChange
     *     @type \PhpWA\Protocol\Proto\UserReceipt[] $userReceipt
     *     @type \PhpWA\Protocol\Proto\Reaction[] $reactions
     *     @type \PhpWA\Protocol\Proto\MediaData $quotedStickerData
     *     @type string $futureproofData
     *     @type \PhpWA\Protocol\Proto\StatusPSA $statusPsa
     *     @type \PhpWA\Protocol\Proto\PollUpdate[] $pollUpdates
     *     @type \PhpWA\Protocol\Proto\PollAdditionalMetadata $pollAdditionalMetadata
     *     @type string $agentId
     *     @type bool $statusAlreadyViewed
     *     @type string $messageSecret
     *     @type \PhpWA\Protocol\Proto\KeepInChat $keepInChat
     *     @type string $originalSelfAuthorUserJidString
     *     @type int|string $revokeMessageTimestamp
     *     @type \PhpWA\Protocol\Proto\PinInChat $pinInChat
     *     @type \PhpWA\Protocol\Proto\PremiumMessageInfo $premiumMessageInfo
     *     @type bool $is1PBizBotMessage
     *     @type bool $isGroupHistoryMessage
     *     @type string $botMessageInvokerJid
     *     @type \PhpWA\Protocol\Proto\CommentMetadata $commentMetadata
     *     @type \PhpWA\Protocol\Proto\EventResponse[] $eventResponses
     *     @type \PhpWA\Protocol\Proto\ReportingTokenInfo $reportingTokenInfo
     *     @type int|string $newsletterServerId
     *     @type \PhpWA\Protocol\Proto\EventAdditionalMetadata $eventAdditionalMetadata
     *     @type bool $isMentionedInStatus
     *     @type string[] $statusMentions
     *     @type \PhpWA\Protocol\Proto\MessageKey $targetMessageId
     *     @type \PhpWA\Protocol\Proto\MessageAddOn[] $messageAddOns
     *     @type \PhpWA\Protocol\Proto\StatusMentionMessage $statusMentionMessageInfo
     *     @type bool $isSupportAiMessage
     *     @type string[] $statusMentionSources
     *     @type \PhpWA\Protocol\Proto\Citation[] $supportAiCitations
     *     @type string $botTargetId
     *     @type \PhpWA\Protocol\Proto\GroupHistoryIndividualMessageInfo $groupHistoryIndividualMessageInfo
     *     @type \PhpWA\Protocol\Proto\GroupHistoryBundleInfo $groupHistoryBundleInfo
     *     @type \PhpWA\Protocol\Proto\InteractiveMessageAdditionalMetadata $interactiveMessageAdditionalMetadata
     *     @type \PhpWA\Protocol\Proto\QuarantinedMessage $quarantinedMessage
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey key = 1;</code>
     * @return \PhpWA\Protocol\Proto\MessageKey|null
     */
    public function getKey()
    {
        return $this->key;
    }

    public function hasKey()
    {
        return isset($this->key);
    }

    public function clearKey()
    {
        unset($this->key);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey key = 1;</code>
     * @param \PhpWA\Protocol\Proto\MessageKey $var
     * @return $this
     */
    public function setKey($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageKey::class);
        $this->key = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message message = 2;</code>
     * @return \PhpWA\Protocol\Proto\Message|null
     */
    public function getMessage()
    {
        return $this->message;
    }

    public function hasMessage()
    {
        return isset($this->message);
    }

    public function clearMessage()
    {
        unset($this->message);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message message = 2;</code>
     * @param \PhpWA\Protocol\Proto\Message $var
     * @return $this
     */
    public function setMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message::class);
        $this->message = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 messageTimestamp = 3;</code>
     * @return int|string
     */
    public function getMessageTimestamp()
    {
        return isset($this->messageTimestamp) ? $this->messageTimestamp : 0;
    }

    public function hasMessageTimestamp()
    {
        return isset($this->messageTimestamp);
    }

    public function clearMessageTimestamp()
    {
        unset($this->messageTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 messageTimestamp = 3;</code>
     * @param int|string $var
     * @return $this
     */
    public function setMessageTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->messageTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.Status status = 4;</code>
     * @return int
     */
    public function getStatus()
    {
        return isset($this->status) ? $this->status : 0;
    }

    public function hasStatus()
    {
        return isset($this->status);
    }

    public function clearStatus()
    {
        unset($this->status);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.Status status = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\Status::class);
        $this->status = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string participant = 5;</code>
     * @return string
     */
    public function getParticipant()
    {
        return isset($this->participant) ? $this->participant : '';
    }

    public function hasParticipant()
    {
        return isset($this->participant);
    }

    public function clearParticipant()
    {
        unset($this->participant);
    }

    /**
     * Generated from protobuf field <code>optional string participant = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setParticipant($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 messageC2STimestamp = 6;</code>
     * @return int|string
     */
    public function getMessageC2STimestamp()
    {
        return isset($this->messageC2STimestamp) ? $this->messageC2STimestamp : 0;
    }

    public function hasMessageC2STimestamp()
    {
        return isset($this->messageC2STimestamp);
    }

    public function clearMessageC2STimestamp()
    {
        unset($this->messageC2STimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 messageC2STimestamp = 6;</code>
     * @param int|string $var
     * @return $this
     */
    public function setMessageC2STimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->messageC2STimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool ignore = 16;</code>
     * @return bool
     */
    public function getIgnore()
    {
        return isset($this->ignore) ? $this->ignore : false;
    }

    public function hasIgnore()
    {
        return isset($this->ignore);
    }

    public function clearIgnore()
    {
        unset($this->ignore);
    }

    /**
     * Generated from protobuf field <code>optional bool ignore = 16;</code>
     * @param bool $var
     * @return $this
     */
    public function setIgnore($var)
    {
        GPBUtil::checkBool($var);
        $this->ignore = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool starred = 17;</code>
     * @return bool
     */
    public function getStarred()
    {
        return isset($this->starred) ? $this->starred : false;
    }

    public function hasStarred()
    {
        return isset($this->starred);
    }

    public function clearStarred()
    {
        unset($this->starred);
    }

    /**
     * Generated from protobuf field <code>optional bool starred = 17;</code>
     * @param bool $var
     * @return $this
     */
    public function setStarred($var)
    {
        GPBUtil::checkBool($var);
        $this->starred = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool broadcast = 18;</code>
     * @return bool
     */
    public function getBroadcast()
    {
        return isset($this->broadcast) ? $this->broadcast : false;
    }

    public function hasBroadcast()
    {
        return isset($this->broadcast);
    }

    public function clearBroadcast()
    {
        unset($this->broadcast);
    }

    /**
     * Generated from protobuf field <code>optional bool broadcast = 18;</code>
     * @param bool $var
     * @return $this
     */
    public function setBroadcast($var)
    {
        GPBUtil::checkBool($var);
        $this->broadcast = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string pushName = 19;</code>
     * @return string
     */
    public function getPushName()
    {
        return isset($this->pushName) ? $this->pushName : '';
    }

    public function hasPushName()
    {
        return isset($this->pushName);
    }

    public function clearPushName()
    {
        unset($this->pushName);
    }

    /**
     * Generated from protobuf field <code>optional string pushName = 19;</code>
     * @param string $var
     * @return $this
     */
    public function setPushName($var)
    {
        GPBUtil::checkString($var, True);
        $this->pushName = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes mediaCiphertextSha256 = 20;</code>
     * @return string
     */
    public function getMediaCiphertextSha256()
    {
        return isset($this->mediaCiphertextSha256) ? $this->mediaCiphertextSha256 : '';
    }

    public function hasMediaCiphertextSha256()
    {
        return isset($this->mediaCiphertextSha256);
    }

    public function clearMediaCiphertextSha256()
    {
        unset($this->mediaCiphertextSha256);
    }

    /**
     * Generated from protobuf field <code>optional bytes mediaCiphertextSha256 = 20;</code>
     * @param string $var
     * @return $this
     */
    public function setMediaCiphertextSha256($var)
    {
        GPBUtil::checkString($var, False);
        $this->mediaCiphertextSha256 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool multicast = 21;</code>
     * @return bool
     */
    public function getMulticast()
    {
        return isset($this->multicast) ? $this->multicast : false;
    }

    public function hasMulticast()
    {
        return isset($this->multicast);
    }

    public function clearMulticast()
    {
        unset($this->multicast);
    }

    /**
     * Generated from protobuf field <code>optional bool multicast = 21;</code>
     * @param bool $var
     * @return $this
     */
    public function setMulticast($var)
    {
        GPBUtil::checkBool($var);
        $this->multicast = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool urlText = 22;</code>
     * @return bool
     */
    public function getUrlText()
    {
        return isset($this->urlText) ? $this->urlText : false;
    }

    public function hasUrlText()
    {
        return isset($this->urlText);
    }

    public function clearUrlText()
    {
        unset($this->urlText);
    }

    /**
     * Generated from protobuf field <code>optional bool urlText = 22;</code>
     * @param bool $var
     * @return $this
     */
    public function setUrlText($var)
    {
        GPBUtil::checkBool($var);
        $this->urlText = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool urlNumber = 23;</code>
     * @return bool
     */
    public function getUrlNumber()
    {
        return isset($this->urlNumber) ? $this->urlNumber : false;
    }

    public function hasUrlNumber()
    {
        return isset($this->urlNumber);
    }

    public function clearUrlNumber()
    {
        unset($this->urlNumber);
    }

    /**
     * Generated from protobuf field <code>optional bool urlNumber = 23;</code>
     * @param bool $var
     * @return $this
     */
    public function setUrlNumber($var)
    {
        GPBUtil::checkBool($var);
        $this->urlNumber = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.StubType messageStubType = 24;</code>
     * @return int
     */
    public function getMessageStubType()
    {
        return isset($this->messageStubType) ? $this->messageStubType : 0;
    }

    public function hasMessageStubType()
    {
        return isset($this->messageStubType);
    }

    public function clearMessageStubType()
    {
        unset($this->messageStubType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.StubType messageStubType = 24;</code>
     * @param int $var
     * @return $this
     */
    public function setMessageStubType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\StubType::class);
        $this->messageStubType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool clearMedia = 25;</code>
     * @return bool
     */
    public function getClearMedia()
    {
        return isset($this->clearMedia) ? $this->clearMedia : false;
    }

    public function hasClearMedia()
    {
        return isset($this->clearMedia);
    }

    public function clearClearMedia()
    {
        unset($this->clearMedia);
    }

    /**
     * Generated from protobuf field <code>optional bool clearMedia = 25;</code>
     * @param bool $var
     * @return $this
     */
    public function setClearMedia($var)
    {
        GPBUtil::checkBool($var);
        $this->clearMedia = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string messageStubParameters = 26;</code>
     * @return RepeatedField<string>
     */
    public function getMessageStubParameters()
    {
        return $this->messageStubParameters;
    }

    /**
     * Generated from protobuf field <code>repeated string messageStubParameters = 26;</code>
     * @param string[] $var
     * @return $this
     */
    public function setMessageStubParameters($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->messageStubParameters = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 duration = 27;</code>
     * @return int
     */
    public function getDuration()
    {
        return isset($this->duration) ? $this->duration : 0;
    }

    public function hasDuration()
    {
        return isset($this->duration);
    }

    public function clearDuration()
    {
        unset($this->duration);
    }

    /**
     * Generated from protobuf field <code>optional uint32 duration = 27;</code>
     * @param int $var
     * @return $this
     */
    public function setDuration($var)
    {
        GPBUtil::checkUint32($var);
        $this->duration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string labels = 28;</code>
     * @return RepeatedField<string>
     */
    public function getLabels()
    {
        return $this->labels;
    }

    /**
     * Generated from protobuf field <code>repeated string labels = 28;</code>
     * @param string[] $var
     * @return $this
     */
    public function setLabels($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->labels = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo paymentInfo = 29;</code>
     * @return \PhpWA\Protocol\Proto\PaymentInfo|null
     */
    public function getPaymentInfo()
    {
        return $this->paymentInfo;
    }

    public function hasPaymentInfo()
    {
        return isset($this->paymentInfo);
    }

    public function clearPaymentInfo()
    {
        unset($this->paymentInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo paymentInfo = 29;</code>
     * @param \PhpWA\Protocol\Proto\PaymentInfo $var
     * @return $this
     */
    public function setPaymentInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PaymentInfo::class);
        $this->paymentInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage finalLiveLocation = 30;</code>
     * @return \PhpWA\Protocol\Proto\Message\LiveLocationMessage|null
     */
    public function getFinalLiveLocation()
    {
        return $this->finalLiveLocation;
    }

    public function hasFinalLiveLocation()
    {
        return isset($this->finalLiveLocation);
    }

    public function clearFinalLiveLocation()
    {
        unset($this->finalLiveLocation);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message.LiveLocationMessage finalLiveLocation = 30;</code>
     * @param \PhpWA\Protocol\Proto\Message\LiveLocationMessage $var
     * @return $this
     */
    public function setFinalLiveLocation($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\LiveLocationMessage::class);
        $this->finalLiveLocation = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo quotedPaymentInfo = 31;</code>
     * @return \PhpWA\Protocol\Proto\PaymentInfo|null
     */
    public function getQuotedPaymentInfo()
    {
        return $this->quotedPaymentInfo;
    }

    public function hasQuotedPaymentInfo()
    {
        return isset($this->quotedPaymentInfo);
    }

    public function clearQuotedPaymentInfo()
    {
        unset($this->quotedPaymentInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PaymentInfo quotedPaymentInfo = 31;</code>
     * @param \PhpWA\Protocol\Proto\PaymentInfo $var
     * @return $this
     */
    public function setQuotedPaymentInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PaymentInfo::class);
        $this->quotedPaymentInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 ephemeralStartTimestamp = 32;</code>
     * @return int|string
     */
    public function getEphemeralStartTimestamp()
    {
        return isset($this->ephemeralStartTimestamp) ? $this->ephemeralStartTimestamp : 0;
    }

    public function hasEphemeralStartTimestamp()
    {
        return isset($this->ephemeralStartTimestamp);
    }

    public function clearEphemeralStartTimestamp()
    {
        unset($this->ephemeralStartTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 ephemeralStartTimestamp = 32;</code>
     * @param int|string $var
     * @return $this
     */
    public function setEphemeralStartTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->ephemeralStartTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralDuration = 33;</code>
     * @return int
     */
    public function getEphemeralDuration()
    {
        return isset($this->ephemeralDuration) ? $this->ephemeralDuration : 0;
    }

    public function hasEphemeralDuration()
    {
        return isset($this->ephemeralDuration);
    }

    public function clearEphemeralDuration()
    {
        unset($this->ephemeralDuration);
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralDuration = 33;</code>
     * @param int $var
     * @return $this
     */
    public function setEphemeralDuration($var)
    {
        GPBUtil::checkUint32($var);
        $this->ephemeralDuration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool ephemeralOffToOn = 34;</code>
     * @return bool
     */
    public function getEphemeralOffToOn()
    {
        return isset($this->ephemeralOffToOn) ? $this->ephemeralOffToOn : false;
    }

    public function hasEphemeralOffToOn()
    {
        return isset($this->ephemeralOffToOn);
    }

    public function clearEphemeralOffToOn()
    {
        unset($this->ephemeralOffToOn);
    }

    /**
     * Generated from protobuf field <code>optional bool ephemeralOffToOn = 34;</code>
     * @param bool $var
     * @return $this
     */
    public function setEphemeralOffToOn($var)
    {
        GPBUtil::checkBool($var);
        $this->ephemeralOffToOn = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool ephemeralOutOfSync = 35;</code>
     * @return bool
     */
    public function getEphemeralOutOfSync()
    {
        return isset($this->ephemeralOutOfSync) ? $this->ephemeralOutOfSync : false;
    }

    public function hasEphemeralOutOfSync()
    {
        return isset($this->ephemeralOutOfSync);
    }

    public function clearEphemeralOutOfSync()
    {
        unset($this->ephemeralOutOfSync);
    }

    /**
     * Generated from protobuf field <code>optional bool ephemeralOutOfSync = 35;</code>
     * @param bool $var
     * @return $this
     */
    public function setEphemeralOutOfSync($var)
    {
        GPBUtil::checkBool($var);
        $this->ephemeralOutOfSync = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.BizPrivacyStatus bizPrivacyStatus = 36;</code>
     * @return int
     */
    public function getBizPrivacyStatus()
    {
        return isset($this->bizPrivacyStatus) ? $this->bizPrivacyStatus : 0;
    }

    public function hasBizPrivacyStatus()
    {
        return isset($this->bizPrivacyStatus);
    }

    public function clearBizPrivacyStatus()
    {
        unset($this->bizPrivacyStatus);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WebMessageInfo.BizPrivacyStatus bizPrivacyStatus = 36;</code>
     * @param int $var
     * @return $this
     */
    public function setBizPrivacyStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\WebMessageInfo\BizPrivacyStatus::class);
        $this->bizPrivacyStatus = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string verifiedBizName = 37;</code>
     * @return string
     */
    public function getVerifiedBizName()
    {
        return isset($this->verifiedBizName) ? $this->verifiedBizName : '';
    }

    public function hasVerifiedBizName()
    {
        return isset($this->verifiedBizName);
    }

    public function clearVerifiedBizName()
    {
        unset($this->verifiedBizName);
    }

    /**
     * Generated from protobuf field <code>optional string verifiedBizName = 37;</code>
     * @param string $var
     * @return $this
     */
    public function setVerifiedBizName($var)
    {
        GPBUtil::checkString($var, True);
        $this->verifiedBizName = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaData mediaData = 38;</code>
     * @return \PhpWA\Protocol\Proto\MediaData|null
     */
    public function getMediaData()
    {
        return $this->mediaData;
    }

    public function hasMediaData()
    {
        return isset($this->mediaData);
    }

    public function clearMediaData()
    {
        unset($this->mediaData);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaData mediaData = 38;</code>
     * @param \PhpWA\Protocol\Proto\MediaData $var
     * @return $this
     */
    public function setMediaData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MediaData::class);
        $this->mediaData = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PhotoChange photoChange = 39;</code>
     * @return \PhpWA\Protocol\Proto\PhotoChange|null
     */
    public function getPhotoChange()
    {
        return $this->photoChange;
    }

    public function hasPhotoChange()
    {
        return isset($this->photoChange);
    }

    public function clearPhotoChange()
    {
        unset($this->photoChange);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PhotoChange photoChange = 39;</code>
     * @param \PhpWA\Protocol\Proto\PhotoChange $var
     * @return $this
     */
    public function setPhotoChange($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PhotoChange::class);
        $this->photoChange = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.UserReceipt userReceipt = 40;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\UserReceipt>
     */
    public function getUserReceipt()
    {
        return $this->userReceipt;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.UserReceipt userReceipt = 40;</code>
     * @param \PhpWA\Protocol\Proto\UserReceipt[] $var
     * @return $this
     */
    public function setUserReceipt($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\UserReceipt::class);
        $this->userReceipt = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.Reaction reactions = 41;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\Reaction>
     */
    public function getReactions()
    {
        return $this->reactions;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.Reaction reactions = 41;</code>
     * @param \PhpWA\Protocol\Proto\Reaction[] $var
     * @return $this
     */
    public function setReactions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\Reaction::class);
        $this->reactions = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaData quotedStickerData = 42;</code>
     * @return \PhpWA\Protocol\Proto\MediaData|null
     */
    public function getQuotedStickerData()
    {
        return $this->quotedStickerData;
    }

    public function hasQuotedStickerData()
    {
        return isset($this->quotedStickerData);
    }

    public function clearQuotedStickerData()
    {
        unset($this->quotedStickerData);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaData quotedStickerData = 42;</code>
     * @param \PhpWA\Protocol\Proto\MediaData $var
     * @return $this
     */
    public function setQuotedStickerData($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MediaData::class);
        $this->quotedStickerData = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes futureproofData = 43;</code>
     * @return string
     */
    public function getFutureproofData()
    {
        return isset($this->futureproofData) ? $this->futureproofData : '';
    }

    public function hasFutureproofData()
    {
        return isset($this->futureproofData);
    }

    public function clearFutureproofData()
    {
        unset($this->futureproofData);
    }

    /**
     * Generated from protobuf field <code>optional bytes futureproofData = 43;</code>
     * @param string $var
     * @return $this
     */
    public function setFutureproofData($var)
    {
        GPBUtil::checkString($var, False);
        $this->futureproofData = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.StatusPSA statusPsa = 44;</code>
     * @return \PhpWA\Protocol\Proto\StatusPSA|null
     */
    public function getStatusPsa()
    {
        return $this->statusPsa;
    }

    public function hasStatusPsa()
    {
        return isset($this->statusPsa);
    }

    public function clearStatusPsa()
    {
        unset($this->statusPsa);
    }

    /**
     * Generated from protobuf field <code>optional .proto.StatusPSA statusPsa = 44;</code>
     * @param \PhpWA\Protocol\Proto\StatusPSA $var
     * @return $this
     */
    public function setStatusPsa($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\StatusPSA::class);
        $this->statusPsa = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.PollUpdate pollUpdates = 45;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\PollUpdate>
     */
    public function getPollUpdates()
    {
        return $this->pollUpdates;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.PollUpdate pollUpdates = 45;</code>
     * @param \PhpWA\Protocol\Proto\PollUpdate[] $var
     * @return $this
     */
    public function setPollUpdates($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\PollUpdate::class);
        $this->pollUpdates = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PollAdditionalMetadata pollAdditionalMetadata = 46;</code>
     * @return \PhpWA\Protocol\Proto\PollAdditionalMetadata|null
     */
    public function getPollAdditionalMetadata()
    {
        return $this->pollAdditionalMetadata;
    }

    public function hasPollAdditionalMetadata()
    {
        return isset($this->pollAdditionalMetadata);
    }

    public function clearPollAdditionalMetadata()
    {
        unset($this->pollAdditionalMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PollAdditionalMetadata pollAdditionalMetadata = 46;</code>
     * @param \PhpWA\Protocol\Proto\PollAdditionalMetadata $var
     * @return $this
     */
    public function setPollAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PollAdditionalMetadata::class);
        $this->pollAdditionalMetadata = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string agentId = 47;</code>
     * @return string
     */
    public function getAgentId()
    {
        return isset($this->agentId) ? $this->agentId : '';
    }

    public function hasAgentId()
    {
        return isset($this->agentId);
    }

    public function clearAgentId()
    {
        unset($this->agentId);
    }

    /**
     * Generated from protobuf field <code>optional string agentId = 47;</code>
     * @param string $var
     * @return $this
     */
    public function setAgentId($var)
    {
        GPBUtil::checkString($var, True);
        $this->agentId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool statusAlreadyViewed = 48;</code>
     * @return bool
     */
    public function getStatusAlreadyViewed()
    {
        return isset($this->statusAlreadyViewed) ? $this->statusAlreadyViewed : false;
    }

    public function hasStatusAlreadyViewed()
    {
        return isset($this->statusAlreadyViewed);
    }

    public function clearStatusAlreadyViewed()
    {
        unset($this->statusAlreadyViewed);
    }

    /**
     * Generated from protobuf field <code>optional bool statusAlreadyViewed = 48;</code>
     * @param bool $var
     * @return $this
     */
    public function setStatusAlreadyViewed($var)
    {
        GPBUtil::checkBool($var);
        $this->statusAlreadyViewed = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes messageSecret = 49;</code>
     * @return string
     */
    public function getMessageSecret()
    {
        return isset($this->messageSecret) ? $this->messageSecret : '';
    }

    public function hasMessageSecret()
    {
        return isset($this->messageSecret);
    }

    public function clearMessageSecret()
    {
        unset($this->messageSecret);
    }

    /**
     * Generated from protobuf field <code>optional bytes messageSecret = 49;</code>
     * @param string $var
     * @return $this
     */
    public function setMessageSecret($var)
    {
        GPBUtil::checkString($var, False);
        $this->messageSecret = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.KeepInChat keepInChat = 50;</code>
     * @return \PhpWA\Protocol\Proto\KeepInChat|null
     */
    public function getKeepInChat()
    {
        return $this->keepInChat;
    }

    public function hasKeepInChat()
    {
        return isset($this->keepInChat);
    }

    public function clearKeepInChat()
    {
        unset($this->keepInChat);
    }

    /**
     * Generated from protobuf field <code>optional .proto.KeepInChat keepInChat = 50;</code>
     * @param \PhpWA\Protocol\Proto\KeepInChat $var
     * @return $this
     */
    public function setKeepInChat($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\KeepInChat::class);
        $this->keepInChat = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string originalSelfAuthorUserJidString = 51;</code>
     * @return string
     */
    public function getOriginalSelfAuthorUserJidString()
    {
        return isset($this->originalSelfAuthorUserJidString) ? $this->originalSelfAuthorUserJidString : '';
    }

    public function hasOriginalSelfAuthorUserJidString()
    {
        return isset($this->originalSelfAuthorUserJidString);
    }

    public function clearOriginalSelfAuthorUserJidString()
    {
        unset($this->originalSelfAuthorUserJidString);
    }

    /**
     * Generated from protobuf field <code>optional string originalSelfAuthorUserJidString = 51;</code>
     * @param string $var
     * @return $this
     */
    public function setOriginalSelfAuthorUserJidString($var)
    {
        GPBUtil::checkString($var, True);
        $this->originalSelfAuthorUserJidString = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 revokeMessageTimestamp = 52;</code>
     * @return int|string
     */
    public function getRevokeMessageTimestamp()
    {
        return isset($this->revokeMessageTimestamp) ? $this->revokeMessageTimestamp : 0;
    }

    public function hasRevokeMessageTimestamp()
    {
        return isset($this->revokeMessageTimestamp);
    }

    public function clearRevokeMessageTimestamp()
    {
        unset($this->revokeMessageTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 revokeMessageTimestamp = 52;</code>
     * @param int|string $var
     * @return $this
     */
    public function setRevokeMessageTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->revokeMessageTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PinInChat pinInChat = 54;</code>
     * @return \PhpWA\Protocol\Proto\PinInChat|null
     */
    public function getPinInChat()
    {
        return $this->pinInChat;
    }

    public function hasPinInChat()
    {
        return isset($this->pinInChat);
    }

    public function clearPinInChat()
    {
        unset($this->pinInChat);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PinInChat pinInChat = 54;</code>
     * @param \PhpWA\Protocol\Proto\PinInChat $var
     * @return $this
     */
    public function setPinInChat($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PinInChat::class);
        $this->pinInChat = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PremiumMessageInfo premiumMessageInfo = 55;</code>
     * @return \PhpWA\Protocol\Proto\PremiumMessageInfo|null
     */
    public function getPremiumMessageInfo()
    {
        return $this->premiumMessageInfo;
    }

    public function hasPremiumMessageInfo()
    {
        return isset($this->premiumMessageInfo);
    }

    public function clearPremiumMessageInfo()
    {
        unset($this->premiumMessageInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PremiumMessageInfo premiumMessageInfo = 55;</code>
     * @param \PhpWA\Protocol\Proto\PremiumMessageInfo $var
     * @return $this
     */
    public function setPremiumMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PremiumMessageInfo::class);
        $this->premiumMessageInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool is1PBizBotMessage = 56;</code>
     * @return bool
     */
    public function getIs1PBizBotMessage()
    {
        return isset($this->is1PBizBotMessage) ? $this->is1PBizBotMessage : false;
    }

    public function hasIs1PBizBotMessage()
    {
        return isset($this->is1PBizBotMessage);
    }

    public function clearIs1PBizBotMessage()
    {
        unset($this->is1PBizBotMessage);
    }

    /**
     * Generated from protobuf field <code>optional bool is1PBizBotMessage = 56;</code>
     * @param bool $var
     * @return $this
     */
    public function setIs1PBizBotMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->is1PBizBotMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isGroupHistoryMessage = 57;</code>
     * @return bool
     */
    public function getIsGroupHistoryMessage()
    {
        return isset($this->isGroupHistoryMessage) ? $this->isGroupHistoryMessage : false;
    }

    public function hasIsGroupHistoryMessage()
    {
        return isset($this->isGroupHistoryMessage);
    }

    public function clearIsGroupHistoryMessage()
    {
        unset($this->isGroupHistoryMessage);
    }

    /**
     * Generated from protobuf field <code>optional bool isGroupHistoryMessage = 57;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsGroupHistoryMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->isGroupHistoryMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string botMessageInvokerJid = 58;</code>
     * @return string
     */
    public function getBotMessageInvokerJid()
    {
        return isset($this->botMessageInvokerJid) ? $this->botMessageInvokerJid : '';
    }

    public function hasBotMessageInvokerJid()
    {
        return isset($this->botMessageInvokerJid);
    }

    public function clearBotMessageInvokerJid()
    {
        unset($this->botMessageInvokerJid);
    }

    /**
     * Generated from protobuf field <code>optional string botMessageInvokerJid = 58;</code>
     * @param string $var
     * @return $this
     */
    public function setBotMessageInvokerJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->botMessageInvokerJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.CommentMetadata commentMetadata = 59;</code>
     * @return \PhpWA\Protocol\Proto\CommentMetadata|null
     */
    public function getCommentMetadata()
    {
        return $this->commentMetadata;
    }

    public function hasCommentMetadata()
    {
        return isset($this->commentMetadata);
    }

    public function clearCommentMetadata()
    {
        unset($this->commentMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.CommentMetadata commentMetadata = 59;</code>
     * @param \PhpWA\Protocol\Proto\CommentMetadata $var
     * @return $this
     */
    public function setCommentMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\CommentMetadata::class);
        $this->commentMetadata = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.EventResponse eventResponses = 61;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\EventResponse>
     */
    public function getEventResponses()
    {
        return $this->eventResponses;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.EventResponse eventResponses = 61;</code>
     * @param \PhpWA\Protocol\Proto\EventResponse[] $var
     * @return $this
     */
    public function setEventResponses($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\EventResponse::class);
        $this->eventResponses = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ReportingTokenInfo reportingTokenInfo = 62;</code>
     * @return \PhpWA\Protocol\Proto\ReportingTokenInfo|null
     */
    public function getReportingTokenInfo()
    {
        return $this->reportingTokenInfo;
    }

    public function hasReportingTokenInfo()
    {
        return isset($this->reportingTokenInfo);
    }

    public function clearReportingTokenInfo()
    {
        unset($this->reportingTokenInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ReportingTokenInfo reportingTokenInfo = 62;</code>
     * @param \PhpWA\Protocol\Proto\ReportingTokenInfo $var
     * @return $this
     */
    public function setReportingTokenInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ReportingTokenInfo::class);
        $this->reportingTokenInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 newsletterServerId = 63;</code>
     * @return int|string
     */
    public function getNewsletterServerId()
    {
        return isset($this->newsletterServerId) ? $this->newsletterServerId : 0;
    }

    public function hasNewsletterServerId()
    {
        return isset($this->newsletterServerId);
    }

    public function clearNewsletterServerId()
    {
        unset($this->newsletterServerId);
    }

    /**
     * Generated from protobuf field <code>optional uint64 newsletterServerId = 63;</code>
     * @param int|string $var
     * @return $this
     */
    public function setNewsletterServerId($var)
    {
        GPBUtil::checkUint64($var);
        $this->newsletterServerId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.EventAdditionalMetadata eventAdditionalMetadata = 64;</code>
     * @return \PhpWA\Protocol\Proto\EventAdditionalMetadata|null
     */
    public function getEventAdditionalMetadata()
    {
        return $this->eventAdditionalMetadata;
    }

    public function hasEventAdditionalMetadata()
    {
        return isset($this->eventAdditionalMetadata);
    }

    public function clearEventAdditionalMetadata()
    {
        unset($this->eventAdditionalMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.EventAdditionalMetadata eventAdditionalMetadata = 64;</code>
     * @param \PhpWA\Protocol\Proto\EventAdditionalMetadata $var
     * @return $this
     */
    public function setEventAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\EventAdditionalMetadata::class);
        $this->eventAdditionalMetadata = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isMentionedInStatus = 65;</code>
     * @return bool
     */
    public function getIsMentionedInStatus()
    {
        return isset($this->isMentionedInStatus) ? $this->isMentionedInStatus : false;
    }

    public function hasIsMentionedInStatus()
    {
        return isset($this->isMentionedInStatus);
    }

    public function clearIsMentionedInStatus()
    {
        unset($this->isMentionedInStatus);
    }

    /**
     * Generated from protobuf field <code>optional bool isMentionedInStatus = 65;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsMentionedInStatus($var)
    {
        GPBUtil::checkBool($var);
        $this->isMentionedInStatus = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string statusMentions = 66;</code>
     * @return RepeatedField<string>
     */
    public function getStatusMentions()
    {
        return $this->statusMentions;
    }

    /**
     * Generated from protobuf field <code>repeated string statusMentions = 66;</code>
     * @param string[] $var
     * @return $this
     */
    public function setStatusMentions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->statusMentions = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey targetMessageId = 67;</code>
     * @return \PhpWA\Protocol\Proto\MessageKey|null
     */
    public function getTargetMessageId()
    {
        return $this->targetMessageId;
    }

    public function hasTargetMessageId()
    {
        return isset($this->targetMessageId);
    }

    public function clearTargetMessageId()
    {
        unset($this->targetMessageId);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey targetMessageId = 67;</code>
     * @param \PhpWA\Protocol\Proto\MessageKey $var
     * @return $this
     */
    public function setTargetMessageId($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageKey::class);
        $this->targetMessageId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.MessageAddOn messageAddOns = 68;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\MessageAddOn>
     */
    public function getMessageAddOns()
    {
        return $this->messageAddOns;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.MessageAddOn messageAddOns = 68;</code>
     * @param \PhpWA\Protocol\Proto\MessageAddOn[] $var
     * @return $this
     */
    public function setMessageAddOns($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\MessageAddOn::class);
        $this->messageAddOns = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.StatusMentionMessage statusMentionMessageInfo = 69;</code>
     * @return \PhpWA\Protocol\Proto\StatusMentionMessage|null
     */
    public function getStatusMentionMessageInfo()
    {
        return $this->statusMentionMessageInfo;
    }

    public function hasStatusMentionMessageInfo()
    {
        return isset($this->statusMentionMessageInfo);
    }

    public function clearStatusMentionMessageInfo()
    {
        unset($this->statusMentionMessageInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.StatusMentionMessage statusMentionMessageInfo = 69;</code>
     * @param \PhpWA\Protocol\Proto\StatusMentionMessage $var
     * @return $this
     */
    public function setStatusMentionMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\StatusMentionMessage::class);
        $this->statusMentionMessageInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isSupportAiMessage = 70;</code>
     * @return bool
     */
    public function getIsSupportAiMessage()
    {
        return isset($this->isSupportAiMessage) ? $this->isSupportAiMessage : false;
    }

    public function hasIsSupportAiMessage()
    {
        return isset($this->isSupportAiMessage);
    }

    public function clearIsSupportAiMessage()
    {
        unset($this->isSupportAiMessage);
    }

    /**
     * Generated from protobuf field <code>optional bool isSupportAiMessage = 70;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsSupportAiMessage($var)
    {
        GPBUtil::checkBool($var);
        $this->isSupportAiMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string statusMentionSources = 71;</code>
     * @return RepeatedField<string>
     */
    public function getStatusMentionSources()
    {
        return $this->statusMentionSources;
    }

    /**
     * Generated from protobuf field <code>repeated string statusMentionSources = 71;</code>
     * @param string[] $var
     * @return $this
     */
    public function setStatusMentionSources($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->statusMentionSources = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.Citation supportAiCitations = 72;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\Citation>
     */
    public function getSupportAiCitations()
    {
        return $this->supportAiCitations;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.Citation supportAiCitations = 72;</code>
     * @param \PhpWA\Protocol\Proto\Citation[] $var
     * @return $this
     */
    public function setSupportAiCitations($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\Citation::class);
        $this->supportAiCitations = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string botTargetId = 73;</code>
     * @return string
     */
    public function getBotTargetId()
    {
        return isset($this->botTargetId) ? $this->botTargetId : '';
    }

    public function hasBotTargetId()
    {
        return isset($this->botTargetId);
    }

    public function clearBotTargetId()
    {
        unset($this->botTargetId);
    }

    /**
     * Generated from protobuf field <code>optional string botTargetId = 73;</code>
     * @param string $var
     * @return $this
     */
    public function setBotTargetId($var)
    {
        GPBUtil::checkString($var, True);
        $this->botTargetId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryIndividualMessageInfo groupHistoryIndividualMessageInfo = 74;</code>
     * @return \PhpWA\Protocol\Proto\GroupHistoryIndividualMessageInfo|null
     */
    public function getGroupHistoryIndividualMessageInfo()
    {
        return $this->groupHistoryIndividualMessageInfo;
    }

    public function hasGroupHistoryIndividualMessageInfo()
    {
        return isset($this->groupHistoryIndividualMessageInfo);
    }

    public function clearGroupHistoryIndividualMessageInfo()
    {
        unset($this->groupHistoryIndividualMessageInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryIndividualMessageInfo groupHistoryIndividualMessageInfo = 74;</code>
     * @param \PhpWA\Protocol\Proto\GroupHistoryIndividualMessageInfo $var
     * @return $this
     */
    public function setGroupHistoryIndividualMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\GroupHistoryIndividualMessageInfo::class);
        $this->groupHistoryIndividualMessageInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryBundleInfo groupHistoryBundleInfo = 75;</code>
     * @return \PhpWA\Protocol\Proto\GroupHistoryBundleInfo|null
     */
    public function getGroupHistoryBundleInfo()
    {
        return $this->groupHistoryBundleInfo;
    }

    public function hasGroupHistoryBundleInfo()
    {
        return isset($this->groupHistoryBundleInfo);
    }

    public function clearGroupHistoryBundleInfo()
    {
        unset($this->groupHistoryBundleInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.GroupHistoryBundleInfo groupHistoryBundleInfo = 75;</code>
     * @param \PhpWA\Protocol\Proto\GroupHistoryBundleInfo $var
     * @return $this
     */
    public function setGroupHistoryBundleInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\GroupHistoryBundleInfo::class);
        $this->groupHistoryBundleInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.InteractiveMessageAdditionalMetadata interactiveMessageAdditionalMetadata = 76;</code>
     * @return \PhpWA\Protocol\Proto\InteractiveMessageAdditionalMetadata|null
     */
    public function getInteractiveMessageAdditionalMetadata()
    {
        return $this->interactiveMessageAdditionalMetadata;
    }

    public function hasInteractiveMessageAdditionalMetadata()
    {
        return isset($this->interactiveMessageAdditionalMetadata);
    }

    public function clearInteractiveMessageAdditionalMetadata()
    {
        unset($this->interactiveMessageAdditionalMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.InteractiveMessageAdditionalMetadata interactiveMessageAdditionalMetadata = 76;</code>
     * @param \PhpWA\Protocol\Proto\InteractiveMessageAdditionalMetadata $var
     * @return $this
     */
    public function setInteractiveMessageAdditionalMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\InteractiveMessageAdditionalMetadata::class);
        $this->interactiveMessageAdditionalMetadata = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.QuarantinedMessage quarantinedMessage = 77;</code>
     * @return \PhpWA\Protocol\Proto\QuarantinedMessage|null
     */
    public function getQuarantinedMessage()
    {
        return $this->quarantinedMessage;
    }

    public function hasQuarantinedMessage()
    {
        return isset($this->quarantinedMessage);
    }

    public function clearQuarantinedMessage()
    {
        unset($this->quarantinedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.QuarantinedMessage quarantinedMessage = 77;</code>
     * @param \PhpWA\Protocol\Proto\QuarantinedMessage $var
     * @return $this
     */
    public function setQuarantinedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\QuarantinedMessage::class);
        $this->quarantinedMessage = $var;

        return $this;
    }

}

