UNPKG

@eulerstream/euler-websocket-sdk

Version:

Browser & Node.JS cross-compatible module for the Euler Stream WebSocket service.

5,491 lines 208 kB
"use strict";
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v2.7.0
//   protoc               v5.27.1
// source: tiktok-schema.proto
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmoteImageDecoder = exports.EmoteDetailsDecoder = exports.WebcastHourlyRankMessageDecoder = exports.RankContainerDecoder = exports.WeeklyRankingDecoder = exports.RankItemDecoder = exports.WebcastInRoomBannerMessageDecoder = exports.SystemMessageDecoder = exports.WebcastLiveIntroMessageDecoder = exports.WebcastMessageEventDetailsDecoder = exports.WebcastMessageEventDecoder = exports.QuestionDetailsDecoder = exports.WebcastQuestionNewMessageDecoder = exports.WebcastLikeMessageDecoder = exports.WebcastSocialMessageDecoder = exports.WebcastLinkMicArmiesGroupDecoder = exports.WebcastLinkMicArmiesItemsDecoder = exports.WebcastLinkMicArmiesDecoder = exports.WebcastLinkMicBattleGroupDecoder = exports.WebcastLinkMicBattleItemsDecoder = exports.WebcastLinkMicBattleDecoder = exports.WebcastGiftMessageGiftImageDecoder = exports.WebcastGiftMessageGiftExtraDecoder = exports.WebcastGiftMessageGiftDetailsDecoder = exports.WebcastGiftMessageDecoder = exports.WebcastMemberMessageDecoder = exports.WebcastSubEmoteDecoder = exports.WebcastEmoteChatMessageDecoder = exports.EmoteUploadInfoDecoder = exports.WebcastChatMessage_CommentQualityScoreDecoder = exports.WebcastChatMessage_UserIdentityDecoder = exports.WebcastChatMessageDecoder = exports.ImageModel_ContentDecoder = exports.ImageModelDecoder = exports.TopUserDecoder = exports.WebcastRoomUserSeqMessageDecoder = exports.WebcastControlMessageDecoder = exports.WebsocketParamDecoder = exports.MessageDecoder = exports.WebcastResponseDecoder = exports.emoteUploadInfo_UserEmoteUploadSourceToJSON = exports.emoteUploadInfo_UserEmoteUploadSourceFromJSON = exports.EmoteUploadInfo_UserEmoteUploadSource = exports.webcastChatMessage_CommentTagToJSON = exports.webcastChatMessage_CommentTagFromJSON = exports.WebcastChatMessage_CommentTag = exports.controlActionToJSON = exports.controlActionFromJSON = exports.ControlAction = exports.protobufPackage = void 0;
exports.WebcastBarrageMessage_TextPieceUserDecoder = exports.WebcastBarrageMessage_TextPieceDecoder = exports.WebcastBarrageMessage_TextDecoder = exports.WebcastBarrageMessageDecoder = exports.WebcastWebsocketAckDecoder = exports.WebcastWebsocketMessageDecoder = exports.UserImageBadgeImageDecoder = exports.UserImageBadgeDecoder = exports.UserBadgeDecoder = exports.PrivilegeLogExtraDecoder = exports.UserBadgesAttributesDecoder = exports.ProfilePictureDecoder = exports.LinkUserDecoder = exports.FollowInfoDecoder = exports.UserDecoder = exports.WebcastSubNotifyMessageDecoder = exports.TreasureBoxDataDecoder = exports.TreasureBoxUser4Decoder = exports.TreasureBoxUser3Decoder = exports.TreasureBoxUser2Decoder = exports.TreasureBoxUserDecoder = exports.WebcastEnvelopeMessageDecoder = void 0;
/* eslint-disable */
const wire_1 = require("@bufbuild/protobuf/wire");
exports.protobufPackage = "TikTok";
var ControlAction;
(function (ControlAction) {
    ControlAction[ControlAction["CONTROL_ACTION_FALLBACK_UNKNOWN"] = 0] = "CONTROL_ACTION_FALLBACK_UNKNOWN";
    ControlAction[ControlAction["CONTROL_ACTION_STREAM_PAUSED"] = 1] = "CONTROL_ACTION_STREAM_PAUSED";
    ControlAction[ControlAction["CONTROL_ACTION_STREAM_UNPAUSED"] = 2] = "CONTROL_ACTION_STREAM_UNPAUSED";
    ControlAction[ControlAction["CONTROL_ACTION_STREAM_ENDED"] = 3] = "CONTROL_ACTION_STREAM_ENDED";
    ControlAction[ControlAction["CONTROL_ACTION_STREAM_SUSPENDED"] = 4] = "CONTROL_ACTION_STREAM_SUSPENDED";
    ControlAction[ControlAction["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(ControlAction = exports.ControlAction || (exports.ControlAction = {}));
function controlActionFromJSON(object) {
    switch (object) {
        case 0:
        case "CONTROL_ACTION_FALLBACK_UNKNOWN":
            return ControlAction.CONTROL_ACTION_FALLBACK_UNKNOWN;
        case 1:
        case "CONTROL_ACTION_STREAM_PAUSED":
            return ControlAction.CONTROL_ACTION_STREAM_PAUSED;
        case 2:
        case "CONTROL_ACTION_STREAM_UNPAUSED":
            return ControlAction.CONTROL_ACTION_STREAM_UNPAUSED;
        case 3:
        case "CONTROL_ACTION_STREAM_ENDED":
            return ControlAction.CONTROL_ACTION_STREAM_ENDED;
        case 4:
        case "CONTROL_ACTION_STREAM_SUSPENDED":
            return ControlAction.CONTROL_ACTION_STREAM_SUSPENDED;
        case -1:
        case "UNRECOGNIZED":
        default:
            return ControlAction.UNRECOGNIZED;
    }
}
exports.controlActionFromJSON = controlActionFromJSON;
function controlActionToJSON(object) {
    switch (object) {
        case ControlAction.CONTROL_ACTION_FALLBACK_UNKNOWN:
            return "CONTROL_ACTION_FALLBACK_UNKNOWN";
        case ControlAction.CONTROL_ACTION_STREAM_PAUSED:
            return "CONTROL_ACTION_STREAM_PAUSED";
        case ControlAction.CONTROL_ACTION_STREAM_UNPAUSED:
            return "CONTROL_ACTION_STREAM_UNPAUSED";
        case ControlAction.CONTROL_ACTION_STREAM_ENDED:
            return "CONTROL_ACTION_STREAM_ENDED";
        case ControlAction.CONTROL_ACTION_STREAM_SUSPENDED:
            return "CONTROL_ACTION_STREAM_SUSPENDED";
        case ControlAction.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.controlActionToJSON = controlActionToJSON;
var WebcastChatMessage_CommentTag;
(function (WebcastChatMessage_CommentTag) {
    WebcastChatMessage_CommentTag[WebcastChatMessage_CommentTag["COMMENT_TAG_NORMAL"] = 0] = "COMMENT_TAG_NORMAL";
    WebcastChatMessage_CommentTag[WebcastChatMessage_CommentTag["COMMENT_TAG_CANDIDATE"] = 1] = "COMMENT_TAG_CANDIDATE";
    WebcastChatMessage_CommentTag[WebcastChatMessage_CommentTag["COMMENT_TAG_OVERAGE"] = 2] = "COMMENT_TAG_OVERAGE";
    WebcastChatMessage_CommentTag[WebcastChatMessage_CommentTag["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(WebcastChatMessage_CommentTag = exports.WebcastChatMessage_CommentTag || (exports.WebcastChatMessage_CommentTag = {}));
function webcastChatMessage_CommentTagFromJSON(object) {
    switch (object) {
        case 0:
        case "COMMENT_TAG_NORMAL":
            return WebcastChatMessage_CommentTag.COMMENT_TAG_NORMAL;
        case 1:
        case "COMMENT_TAG_CANDIDATE":
            return WebcastChatMessage_CommentTag.COMMENT_TAG_CANDIDATE;
        case 2:
        case "COMMENT_TAG_OVERAGE":
            return WebcastChatMessage_CommentTag.COMMENT_TAG_OVERAGE;
        case -1:
        case "UNRECOGNIZED":
        default:
            return WebcastChatMessage_CommentTag.UNRECOGNIZED;
    }
}
exports.webcastChatMessage_CommentTagFromJSON = webcastChatMessage_CommentTagFromJSON;
function webcastChatMessage_CommentTagToJSON(object) {
    switch (object) {
        case WebcastChatMessage_CommentTag.COMMENT_TAG_NORMAL:
            return "COMMENT_TAG_NORMAL";
        case WebcastChatMessage_CommentTag.COMMENT_TAG_CANDIDATE:
            return "COMMENT_TAG_CANDIDATE";
        case WebcastChatMessage_CommentTag.COMMENT_TAG_OVERAGE:
            return "COMMENT_TAG_OVERAGE";
        case WebcastChatMessage_CommentTag.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.webcastChatMessage_CommentTagToJSON = webcastChatMessage_CommentTagToJSON;
var EmoteUploadInfo_UserEmoteUploadSource;
(function (EmoteUploadInfo_UserEmoteUploadSource) {
    EmoteUploadInfo_UserEmoteUploadSource[EmoteUploadInfo_UserEmoteUploadSource["USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR"] = 0] = "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR";
    EmoteUploadInfo_UserEmoteUploadSource[EmoteUploadInfo_UserEmoteUploadSource["USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER"] = 1] = "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER";
    EmoteUploadInfo_UserEmoteUploadSource[EmoteUploadInfo_UserEmoteUploadSource["USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR"] = 2] = "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR";
    EmoteUploadInfo_UserEmoteUploadSource[EmoteUploadInfo_UserEmoteUploadSource["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(EmoteUploadInfo_UserEmoteUploadSource = exports.EmoteUploadInfo_UserEmoteUploadSource || (exports.EmoteUploadInfo_UserEmoteUploadSource = {}));
function emoteUploadInfo_UserEmoteUploadSourceFromJSON(object) {
    switch (object) {
        case 0:
        case "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR":
            return EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR;
        case 1:
        case "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER":
            return EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER;
        case 2:
        case "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR":
            return EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR;
        case -1:
        case "UNRECOGNIZED":
        default:
            return EmoteUploadInfo_UserEmoteUploadSource.UNRECOGNIZED;
    }
}
exports.emoteUploadInfo_UserEmoteUploadSourceFromJSON = emoteUploadInfo_UserEmoteUploadSourceFromJSON;
function emoteUploadInfo_UserEmoteUploadSourceToJSON(object) {
    switch (object) {
        case EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR:
            return "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_ANCHOR";
        case EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER:
            return "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_SUBSCRIBER";
        case EmoteUploadInfo_UserEmoteUploadSource.USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR:
            return "USER_EMOTE_UPLOAD_SOURCE_EMOTE_UPLOAD_SOURCE_MODERATOR";
        case EmoteUploadInfo_UserEmoteUploadSource.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
exports.emoteUploadInfo_UserEmoteUploadSourceToJSON = emoteUploadInfo_UserEmoteUploadSourceToJSON;
function createBaseWebcastResponse() {
    return {
        messages: [],
        cursor: "",
        fetchInterval: 0,
        serverTimestamp: "0",
        internalExt: "",
        fetchType: 0,
        wsParams: [],
        heartbeatDuration: 0,
        needAck: false,
        wsUrl: "",
    };
}
exports.WebcastResponseDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.messages) {
            exports.MessageDecoder.encode(v, writer.uint32(10).fork()).join();
        }
        if (message.cursor !== "") {
            writer.uint32(18).string(message.cursor);
        }
        if (message.fetchInterval !== 0) {
            writer.uint32(24).int32(message.fetchInterval);
        }
        if (message.serverTimestamp !== "0") {
            writer.uint32(32).int64(message.serverTimestamp);
        }
        if (message.internalExt !== "") {
            writer.uint32(42).string(message.internalExt);
        }
        if (message.fetchType !== 0) {
            writer.uint32(48).int32(message.fetchType);
        }
        for (const v of message.wsParams) {
            exports.WebsocketParamDecoder.encode(v, writer.uint32(58).fork()).join();
        }
        if (message.heartbeatDuration !== 0) {
            writer.uint32(64).int32(message.heartbeatDuration);
        }
        if (message.needAck !== false) {
            writer.uint32(72).bool(message.needAck);
        }
        if (message.wsUrl !== "") {
            writer.uint32(82).string(message.wsUrl);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastResponse();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.messages.push(exports.MessageDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.cursor = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.fetchInterval = reader.int32();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.serverTimestamp = reader.int64().toString();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.internalExt = reader.string();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.fetchType = reader.int32();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.wsParams.push(exports.WebsocketParamDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 8: {
                    if (tag !== 64) {
                        break;
                    }
                    message.heartbeatDuration = reader.int32();
                    continue;
                }
                case 9: {
                    if (tag !== 72) {
                        break;
                    }
                    message.needAck = reader.bool();
                    continue;
                }
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.wsUrl = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            messages: globalThis.Array.isArray(object?.messages) ? object.messages.map((e) => exports.MessageDecoder.fromJSON(e)) : [],
            cursor: isSet(object.cursor) ? globalThis.String(object.cursor) : "",
            fetchInterval: isSet(object.fetchInterval) ? globalThis.Number(object.fetchInterval) : 0,
            serverTimestamp: isSet(object.serverTimestamp) ? globalThis.String(object.serverTimestamp) : "0",
            internalExt: isSet(object.internalExt) ? globalThis.String(object.internalExt) : "",
            fetchType: isSet(object.fetchType) ? globalThis.Number(object.fetchType) : 0,
            wsParams: globalThis.Array.isArray(object?.wsParams)
                ? object.wsParams.map((e) => exports.WebsocketParamDecoder.fromJSON(e))
                : [],
            heartbeatDuration: isSet(object.heartbeatDuration) ? globalThis.Number(object.heartbeatDuration) : 0,
            needAck: isSet(object.needAck) ? globalThis.Boolean(object.needAck) : false,
            wsUrl: isSet(object.wsUrl) ? globalThis.String(object.wsUrl) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.messages?.length) {
            obj.messages = message.messages.map((e) => exports.MessageDecoder.toJSON(e));
        }
        if (message.cursor !== "") {
            obj.cursor = message.cursor;
        }
        if (message.fetchInterval !== 0) {
            obj.fetchInterval = Math.round(message.fetchInterval);
        }
        if (message.serverTimestamp !== "0") {
            obj.serverTimestamp = message.serverTimestamp;
        }
        if (message.internalExt !== "") {
            obj.internalExt = message.internalExt;
        }
        if (message.fetchType !== 0) {
            obj.fetchType = Math.round(message.fetchType);
        }
        if (message.wsParams?.length) {
            obj.wsParams = message.wsParams.map((e) => exports.WebsocketParamDecoder.toJSON(e));
        }
        if (message.heartbeatDuration !== 0) {
            obj.heartbeatDuration = Math.round(message.heartbeatDuration);
        }
        if (message.needAck !== false) {
            obj.needAck = message.needAck;
        }
        if (message.wsUrl !== "") {
            obj.wsUrl = message.wsUrl;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastResponseDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastResponse();
        message.messages = object.messages?.map((e) => exports.MessageDecoder.fromPartial(e)) || [];
        message.cursor = object.cursor ?? "";
        message.fetchInterval = object.fetchInterval ?? 0;
        message.serverTimestamp = object.serverTimestamp ?? "0";
        message.internalExt = object.internalExt ?? "";
        message.fetchType = object.fetchType ?? 0;
        message.wsParams = object.wsParams?.map((e) => exports.WebsocketParamDecoder.fromPartial(e)) || [];
        message.heartbeatDuration = object.heartbeatDuration ?? 0;
        message.needAck = object.needAck ?? false;
        message.wsUrl = object.wsUrl ?? "";
        return message;
    },
};
function createBaseMessage() {
    return { type: "", binary: new Uint8Array(0) };
}
exports.MessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.type !== "") {
            writer.uint32(10).string(message.type);
        }
        if (message.binary.length !== 0) {
            writer.uint32(18).bytes(message.binary);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.type = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.binary = reader.bytes();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            type: isSet(object.type) ? globalThis.String(object.type) : "",
            binary: isSet(object.binary) ? bytesFromBase64(object.binary) : new Uint8Array(0),
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== "") {
            obj.type = message.type;
        }
        if (message.binary.length !== 0) {
            obj.binary = base64FromBytes(message.binary);
        }
        return obj;
    },
    create(base) {
        return exports.MessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseMessage();
        message.type = object.type ?? "";
        message.binary = object.binary ?? new Uint8Array(0);
        return message;
    },
};
function createBaseWebsocketParam() {
    return { name: "", value: "" };
}
exports.WebsocketParamDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.name !== "") {
            writer.uint32(10).string(message.name);
        }
        if (message.value !== "") {
            writer.uint32(18).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebsocketParam();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            name: isSet(object.name) ? globalThis.String(object.name) : "",
            value: isSet(object.value) ? globalThis.String(object.value) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.name !== "") {
            obj.name = message.name;
        }
        if (message.value !== "") {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return exports.WebsocketParamDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebsocketParam();
        message.name = object.name ?? "";
        message.value = object.value ?? "";
        return message;
    },
};
function createBaseWebcastControlMessage() {
    return { action: 0 };
}
exports.WebcastControlMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.action !== 0) {
            writer.uint32(16).int32(message.action);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastControlMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.action = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { action: isSet(object.action) ? controlActionFromJSON(object.action) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.action !== 0) {
            obj.action = controlActionToJSON(message.action);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastControlMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastControlMessage();
        message.action = object.action ?? 0;
        return message;
    },
};
function createBaseWebcastRoomUserSeqMessage() {
    return { topViewers: [], viewerCount: 0 };
}
exports.WebcastRoomUserSeqMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.topViewers) {
            exports.TopUserDecoder.encode(v, writer.uint32(18).fork()).join();
        }
        if (message.viewerCount !== 0) {
            writer.uint32(24).int32(message.viewerCount);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastRoomUserSeqMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.topViewers.push(exports.TopUserDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.viewerCount = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            topViewers: globalThis.Array.isArray(object?.topViewers)
                ? object.topViewers.map((e) => exports.TopUserDecoder.fromJSON(e))
                : [],
            viewerCount: isSet(object.viewerCount) ? globalThis.Number(object.viewerCount) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.topViewers?.length) {
            obj.topViewers = message.topViewers.map((e) => exports.TopUserDecoder.toJSON(e));
        }
        if (message.viewerCount !== 0) {
            obj.viewerCount = Math.round(message.viewerCount);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastRoomUserSeqMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastRoomUserSeqMessage();
        message.topViewers = object.topViewers?.map((e) => exports.TopUserDecoder.fromPartial(e)) || [];
        message.viewerCount = object.viewerCount ?? 0;
        return message;
    },
};
function createBaseTopUser() {
    return { coinCount: "0", user: undefined };
}
exports.TopUserDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.coinCount !== "0") {
            writer.uint32(8).uint64(message.coinCount);
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTopUser();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.coinCount = reader.uint64().toString();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            coinCount: isSet(object.coinCount) ? globalThis.String(object.coinCount) : "0",
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.coinCount !== "0") {
            obj.coinCount = message.coinCount;
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.TopUserDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTopUser();
        message.coinCount = object.coinCount ?? "0";
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseImageModel() {
    return {
        mUrls: [],
        mUri: "",
        height: 0,
        width: 0,
        avgColor: "",
        imageType: 0,
        schema: "",
        content: undefined,
        isAnimated: false,
    };
}
exports.ImageModelDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.mUrls) {
            writer.uint32(10).string(v);
        }
        if (message.mUri !== "") {
            writer.uint32(18).string(message.mUri);
        }
        if (message.height !== 0) {
            writer.uint32(24).int32(message.height);
        }
        if (message.width !== 0) {
            writer.uint32(32).int32(message.width);
        }
        if (message.avgColor !== "") {
            writer.uint32(42).string(message.avgColor);
        }
        if (message.imageType !== 0) {
            writer.uint32(48).int32(message.imageType);
        }
        if (message.schema !== "") {
            writer.uint32(58).string(message.schema);
        }
        if (message.content !== undefined) {
            exports.ImageModel_ContentDecoder.encode(message.content, writer.uint32(66).fork()).join();
        }
        if (message.isAnimated !== false) {
            writer.uint32(72).bool(message.isAnimated);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseImageModel();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.mUrls.push(reader.string());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.mUri = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.height = reader.int32();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.width = reader.int32();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.avgColor = reader.string();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.imageType = reader.int32();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.schema = reader.string();
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.content = exports.ImageModel_ContentDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 9: {
                    if (tag !== 72) {
                        break;
                    }
                    message.isAnimated = reader.bool();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            mUrls: globalThis.Array.isArray(object?.mUrls) ? object.mUrls.map((e) => globalThis.String(e)) : [],
            mUri: isSet(object.mUri) ? globalThis.String(object.mUri) : "",
            height: isSet(object.height) ? globalThis.Number(object.height) : 0,
            width: isSet(object.width) ? globalThis.Number(object.width) : 0,
            avgColor: isSet(object.avgColor) ? globalThis.String(object.avgColor) : "",
            imageType: isSet(object.imageType) ? globalThis.Number(object.imageType) : 0,
            schema: isSet(object.schema) ? globalThis.String(object.schema) : "",
            content: isSet(object.content) ? exports.ImageModel_ContentDecoder.fromJSON(object.content) : undefined,
            isAnimated: isSet(object.isAnimated) ? globalThis.Boolean(object.isAnimated) : false,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.mUrls?.length) {
            obj.mUrls = message.mUrls;
        }
        if (message.mUri !== "") {
            obj.mUri = message.mUri;
        }
        if (message.height !== 0) {
            obj.height = Math.round(message.height);
        }
        if (message.width !== 0) {
            obj.width = Math.round(message.width);
        }
        if (message.avgColor !== "") {
            obj.avgColor = message.avgColor;
        }
        if (message.imageType !== 0) {
            obj.imageType = Math.round(message.imageType);
        }
        if (message.schema !== "") {
            obj.schema = message.schema;
        }
        if (message.content !== undefined) {
            obj.content = exports.ImageModel_ContentDecoder.toJSON(message.content);
        }
        if (message.isAnimated !== false) {
            obj.isAnimated = message.isAnimated;
        }
        return obj;
    },
    create(base) {
        return exports.ImageModelDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseImageModel();
        message.mUrls = object.mUrls?.map((e) => e) || [];
        message.mUri = object.mUri ?? "";
        message.height = object.height ?? 0;
        message.width = object.width ?? 0;
        message.avgColor = object.avgColor ?? "";
        message.imageType = object.imageType ?? 0;
        message.schema = object.schema ?? "";
        message.content = (object.content !== undefined && object.content !== null)
            ? exports.ImageModel_ContentDecoder.fromPartial(object.content)
            : undefined;
        message.isAnimated = object.isAnimated ?? false;
        return message;
    },
};
function createBaseImageModel_Content() {
    return { name: "", fontColor: "", level: "0" };
}
exports.ImageModel_ContentDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.name !== "") {
            writer.uint32(10).string(message.name);
        }
        if (message.fontColor !== "") {
            writer.uint32(18).string(message.fontColor);
        }
        if (message.level !== "0") {
            writer.uint32(24).int64(message.level);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseImageModel_Content();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.fontColor = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.level = reader.int64().toString();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            name: isSet(object.name) ? globalThis.String(object.name) : "",
            fontColor: isSet(object.fontColor) ? globalThis.String(object.fontColor) : "",
            level: isSet(object.level) ? globalThis.String(object.level) : "0",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.name !== "") {
            obj.name = message.name;
        }
        if (message.fontColor !== "") {
            obj.fontColor = message.fontColor;
        }
        if (message.level !== "0") {
            obj.level = message.level;
        }
        return obj;
    },
    create(base) {
        return exports.ImageModel_ContentDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseImageModel_Content();
        message.name = object.name ?? "";
        message.fontColor = object.fontColor ?? "";
        message.level = object.level ?? "0";
        return message;
    },
};
function createBaseWebcastChatMessage() {
    return {
        event: undefined,
        user: undefined,
        comment: "",
        visibleToSender: false,
        background: undefined,
        fullScreenTextColor: "",
        backgroundImageV2: undefined,
        giftImage: undefined,
        inputType: 0,
        atUser: undefined,
        emotes: [],
        contentLanguage: "",
        quickChatScene: 0,
        communityflaggedStatus: 0,
        commentQualityScores: [],
        userIdentity: undefined,
        commentTag: [],
        screenTime: "0",
        signature: "",
        signatureVersion: "",
        ecStreamerKey: "",
    };
}
exports.WebcastChatMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        if (message.comment !== "") {
            writer.uint32(26).string(message.comment);
        }
        if (message.visibleToSender !== false) {
            writer.uint32(32).bool(message.visibleToSender);
        }
        if (message.background !== undefined) {
            exports.ImageModelDecoder.encode(message.background, writer.uint32(42).fork()).join();
        }
        if (message.fullScreenTextColor !== "") {
            writer.uint32(50).string(message.fullScreenTextColor);
        }
        if (message.backgroundImageV2 !== undefined) {
            exports.ImageModelDecoder.encode(message.backgroundImageV2, writer.uint32(58).fork()).join();
        }
        if (message.giftImage !== undefined) {
            exports.ImageModelDecoder.encode(message.giftImage, writer.uint32(82).fork()).join();
        }
        if (message.inputType !== 0) {
            writer.uint32(88).int32(message.inputType);
        }
        if (message.atUser !== undefined) {
            exports.UserDecoder.encode(message.atUser, writer.uint32(98).fork()).join();
        }
        for (const v of message.emotes) {
            exports.WebcastSubEmoteDecoder.encode(v, writer.uint32(106).fork()).join();
        }
        if (message.contentLanguage !== "") {
            writer.uint32(114).string(message.contentLanguage);
        }
        if (message.quickChatScene !== 0) {
            writer.uint32(128).int32(message.quickChatScene);
        }
        if (message.communityflaggedStatus !== 0) {
            writer.uint32(136).int32(message.communityflaggedStatus);
        }
        for (const v of message.commentQualityScores) {
            exports.WebcastChatMessage_CommentQualityScoreDecoder.encode(v, writer.uint32(154).fork()).join();
        }
        if (message.userIdentity !== undefined) {
            exports.WebcastChatMessage_UserIdentityDecoder.encode(message.userIdentity, writer.uint32(146).fork()).join();
        }
        writer.uint32(162).fork();
        for (const v of message.commentTag) {
            writer.int32(v);
        }
        writer.join();
        if (message.screenTime !== "0") {
            writer.uint32(176).int64(message.screenTime);
        }
        if (message.signature !== "") {
            writer.uint32(186).string(message.signature);
        }
        if (message.signatureVersion !== "") {
            writer.uint32(194).string(message.signatureVersion);
        }
        if (message.ecStreamerKey !== "") {
            writer.uint32(202).string(message.ecStreamerKey);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastChatMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.comment = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.visibleToSender = reader.bool();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.background = exports.ImageModelDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.fullScreenTextColor = reader.string();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.backgroundImageV2 = exports.ImageModelDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.giftImage = exports.ImageModelDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 11: {
                    if (tag !== 88) {
                        break;
                    }
                    message.inputType = reader.int32();
                    continue;
                }
                case 12: {
                    if (tag !== 98) {
                        break;
                    }
                    message.atUser = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 13: {
                    if (tag !== 106) {
                        break;
                    }
                    message.emotes.push(exports.WebcastSubEmoteDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 14: {
                    if (tag !== 114) {
                        break;
                    }
                    message.contentLanguage = reader.string();
                    continue;
                }
                case 16: {
                    if (tag !== 128) {
                        break;
                    }
                    message.quickChatScene = reader.int32();
                    continue;
                }
                case 17: {
                    if (tag !== 136) {
                        break;
                    }
                    message.communityflaggedStatus = reader.int32();
                    continue;
                }
                case 19: {
                    if (tag !== 154) {
                        break;
                    }
                    message.commentQualityScores.push(exports.WebcastChatMessage_CommentQualityScoreDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 18: {
                    if (tag !== 146) {
                        break;
                    }
                    message.userIdentity = exports.WebcastChatMessage_UserIdentityDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 20: {
                    if (tag === 160) {
                        message.commentTag.push(reader.int32());
                        continue;
                    }
                    if (tag === 162) {
                        const end2 = reader.uint32() + reader.pos;
                        while (reader.pos < end2) {
                            message.commentTag.push(reader.int32());
                        }
                        continue;
                    }
                    break;
                }
                case 22: {
                    if (tag !== 176) {
                        break;
                    }
                    message.screenTime = reader.int64().toString();
                    continue;
                }
                case 23: {
                    if (tag !== 186) {
                        break;
                    }
                    message.signature = reader.string();
                    continue;
                }
                case 24: {
                    if (tag !== 194) {
                        break;
                    }
                    message.signatureVersion = reader.string();
                    continue;
                }
                case 25: {
                    if (tag !== 202) {
                        break;
                    }
                    message.ecStreamerKey = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            comment: isSet(object.comment) ? globalThis.String(object.comment) : "",
            visibleToSender: isSet(object.visibleToSender) ? globalThis.Boolean(object.visibleToSender) : false,
            background: isSet(object.background) ? exports.ImageModelDecoder.fromJSON(object.background) : undefined,
            fullScreenTextColor: isSet(object.fullScreenTextColor) ? globalThis.String(object.fullScreenTextColor) : "",
            backgroundImageV2: isSet(object.backgroundImageV2) ? exports.ImageModelDecoder.fromJSON(object.backgroundImageV2) : undefined,
            giftImage: isSet(object.giftImage) ? exports.ImageModelDecoder.fromJSON(object.giftImage) : undefined,
            inputType: isSet(object.inputType) ? globalThis.Number(object.inputType) : 0,
            atUser: isSet(object.atUser) ? exports.UserDecoder.fromJSON(object.atUser) : undefined,
            emotes: globalThis.Array.isArray(object?.emotes)
                ? object.emotes.map((e) => exports.WebcastSubEmoteDecoder.fromJSON(e))
                : [],
            contentLanguage: isSet(object.contentLanguage) ? globalThis.String(object.contentLanguage) : "",
            quickChatScene: isSet(object.quickChatScene) ? globalThis.Number(object.quickChatScene) : 0,
            communityflaggedStatus: isSet(object.communityflaggedStatus)
                ? globalThis.Number(object.communityflaggedStatus)
                : 0,
            commentQualityScores: globalThis.Array.isArray(object?.commentQualityScores)
                ? object.commentQualityScores.map((e) => exports.WebcastChatMessage_CommentQualityScoreDecoder.fromJSON(e))
                : [],
            userIdentity: isSet(object.userIdentity)
                ? exports.WebcastChatMessage_UserIdentityDecoder.fromJSON(object.userIdentity)
                : undefined,
            commentTag: globalThis.Array.isArray(object?.commentTag)
                ? object.commentTag.map((e) => webcastChatMessage_CommentTagFromJSON(e))
                : [],
            screenTime: isSet(object.screenTime) ? globalThis.String(object.screenTime) : "0",
            signature: isSet(object.signature) ? globalThis.String(object.signature) : "",
            signatureVersion: isSet(object.signatureVersion) ? globalThis.String(object.signatureVersion) : "",
            ecStreamerKey: isSet(object.ecStreamerKey) ? globalThis.String(object.ecStreamerKey) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.comment !== "") {
            obj.comment = message.comment;
        }
        if (message.visibleToSender !== false) {
            obj.visibleToSender = message.visibleToSender;
        }
        if (message.background !== undefined) {
            obj.background = exports.ImageModelDecoder.toJSON(message.background);
        }
        if (message.fullScreenTextColor !== "") {
            obj.fullScreenTextColor = message.fullScreenTextColor;
        }
        if (message.backgroundImageV2 !== undefined) {
            obj.backgroundImageV2 = exports.ImageModelDecoder.toJSON(message.backgroundImageV2);
        }
        if (message.giftImage !== undefined) {
            obj.giftImage = exports.ImageModelDecoder.toJSON(message.giftImage);
        }
        if (message.inputType !== 0) {
            obj.inputType = Math.round(message.inputType);
        }
        if (message.atUser !== undefined) {
            obj.atUser = exports.UserDecoder.toJSON(message.atUser);
        }
        if (message.emotes?.length) {
            obj.emotes = message.emotes.map((e) => exports.WebcastSubEmoteDecoder.toJSON(e));
        }
        if (message.contentLanguage !== "") {
            obj.contentLanguage = message.contentLanguage;
        }
        if (message.quickChatScene !== 0) {
            obj.quickChatScene = Math.round(message.quickChatScene);
        }
        if (message.communityflaggedStatus !== 0) {
            obj.communityflaggedStatus = Math.round(message.communityflaggedStatus);
        }
        if (message.commentQualityScores?.length) {
            obj.commentQualityScores = message.commentQualityScores.map((e) => exports.WebcastChatMessage_CommentQualityScoreDecoder.toJSON(e));
        }
        if (message.userIdentity !== undefined) {
            obj.userIdentity = exports.WebcastChatMessage_UserIdentityDecoder.toJSON(message.userIdentity);
        }
        if (message.commentTag?.length) {
            obj.commentTag = message.commentTag.map((e) => webcastChatMessage_CommentTagToJSON(e));
        }
        if (message.screenTime !== "0") {
            obj.screenTime = message.screenTime;
        }
        if (message.signature !== "") {
            obj.signature = message.signature;
        }
        if (message.signatureVersion !== "") {
            obj.signatureVersion = message.signatureVersion;
        }
        if (message.ecStreamerKey !== "") {
            obj.ecStreamerKey = message.ecStreamerKey;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastChatMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastChatMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.comment = object.comment ?? "";
        message.visibleToSender = object.visibleToSender ?? false;
        message.background = (object.background !== undefined && object.background !== null)
            ? exports.ImageModelDecoder.fromPartial(object.background)
            : undefined;
        message.fullScreenTextColor = object.fullScreenTextColor ?? "";
        message.backgroundImageV2 = (object.backgroundImageV2 !== undefined && object.backgroundImageV2 !== null)
            ? exports.ImageModelDecoder.fromPartial(object.backgroundImageV2)
            : undefined;
        message.giftImage = (object.giftImage !== undefined && object.giftImage !== null)
            ? exports.ImageModelDecoder.fromPartial(object.giftImage)
            : undefined;
        message.inputType = object.inputType ?? 0;
        message.atUser = (object.atUser !== undefined && object.atUser !== null)
            ? exports.UserDecoder.fromPartial(object.atUser)
            : undefined;
        message.emotes = object.emotes?.map((e) => exports.WebcastSubEmoteDecoder.fromPartial(e)) || [];
        message.contentLanguage = object.contentLanguage ?? "";
        message.quickChatScene = object.quickChatScene ?? 0;
        message.communityflaggedStatus = object.communityflaggedStatus ?? 0;
        message.commentQualityScores =
            object.commentQualityScores?.map((e) => exports.WebcastChatMessage_CommentQualityScoreDecoder.fromPartial(e)) || [];
        message.userIdentity = (object.userIdentity !== undefined && object.userIdentity !== null)
            ? exports.WebcastChatMessage_UserIdentityDecoder.fromPartial(object.userIdentity)
            : undefined;
        message.commentTag = object.commentTag?.map((e) => e) || [];
        message.screenTime = object.screenTime ?? "0";
        message.signature = object.signature ?? "";
        message.signatureVersion = object.signatureVersion ?? "";
        message.ecStreamerKey = object.ecStreamerKey ?? "";
        return message;
    },
};
function createBaseWebcastChatMessage_UserIdentity() {
    return {
        isGiftGiverOfAnchor: false,
        isSubscriberOfAnchor: false,
        isMutualFollowingWithAnchor: false,
        isFollowerOfAnchor: false,
        isModeratorOfAnchor: false,
        isAnchor: false,
    };
}
exports.WebcastChatMessage_UserIdentityDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.isGiftGiverOfAnchor !== false) {
            writer.uint32(8).bool(message.isGiftGiverOfAnchor);
        }
        if (message.isSubscriberOfAnchor !== false) {
            writer.uint32(16).bool(message.isSubscriberOfAnchor);
        }
        if (message.isMutualFollowingWithAnchor !== false) {
            writer.uint32(24).bool(message.isMutualFollowingWithAnchor);
        }
        if (message.isFollowerOfAnchor !== false) {
            writer.uint32(32).bool(message.isFollowerOfAnchor);
        }
        if (message.isModeratorOfAnchor !== false) {
            writer.uint32(40).bool(message.isModeratorOfAnchor);
        }
        if (message.isAnchor !== false) {
            writer.uint32(48).bool(message.isAnchor);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastChatMessage_UserIdentity();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.isGiftGiverOfAnchor = reader.bool();
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.isSubscriberOfAnchor = reader.bool();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.isMutualFollowingWithAnchor = reader.bool();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.isFollowerOfAnchor = reader.bool();
                    continue;
                }
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.isModeratorOfAnchor = reader.bool();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.isAnchor = reader.bool();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            isGiftGiverOfAnchor: isSet(object.isGiftGiverOfAnchor) ? globalThis.Boolean(object.isGiftGiverOfAnchor) : false,
            isSubscriberOfAnchor: isSet(object.isSubscriberOfAnchor)
                ? globalThis.Boolean(object.isSubscriberOfAnchor)
                : false,
            isMutualFollowingWithAnchor: isSet(object.isMutualFollowingWithAnchor)
                ? globalThis.Boolean(object.isMutualFollowingWithAnchor)
                : false,
            isFollowerOfAnchor: isSet(object.isFollowerOfAnchor) ? globalThis.Boolean(object.isFollowerOfAnchor) : false,
            isModeratorOfAnchor: isSet(object.isModeratorOfAnchor) ? globalThis.Boolean(object.isModeratorOfAnchor) : false,
            isAnchor: isSet(object.isAnchor) ? globalThis.Boolean(object.isAnchor) : false,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.isGiftGiverOfAnchor !== false) {
            obj.isGiftGiverOfAnchor = message.isGiftGiverOfAnchor;
        }
        if (message.isSubscriberOfAnchor !== false) {
            obj.isSubscriberOfAnchor = message.isSubscriberOfAnchor;
        }
        if (message.isMutualFollowingWithAnchor !== false) {
            obj.isMutualFollowingWithAnchor = message.isMutualFollowingWithAnchor;
        }
        if (message.isFollowerOfAnchor !== false) {
            obj.isFollowerOfAnchor = message.isFollowerOfAnchor;
        }
        if (message.isModeratorOfAnchor !== false) {
            obj.isModeratorOfAnchor = message.isModeratorOfAnchor;
        }
        if (message.isAnchor !== false) {
            obj.isAnchor = message.isAnchor;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastChatMessage_UserIdentityDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastChatMessage_UserIdentity();
        message.isGiftGiverOfAnchor = object.isGiftGiverOfAnchor ?? false;
        message.isSubscriberOfAnchor = object.isSubscriberOfAnchor ?? false;
        message.isMutualFollowingWithAnchor = object.isMutualFollowingWithAnchor ?? false;
        message.isFollowerOfAnchor = object.isFollowerOfAnchor ?? false;
        message.isModeratorOfAnchor = object.isModeratorOfAnchor ?? false;
        message.isAnchor = object.isAnchor ?? false;
        return message;
    },
};
function createBaseWebcastChatMessage_CommentQualityScore() {
    return { version: "", score: "0" };
}
exports.WebcastChatMessage_CommentQualityScoreDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.version !== "") {
            writer.uint32(10).string(message.version);
        }
        if (message.score !== "0") {
            writer.uint32(16).int64(message.score);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastChatMessage_CommentQualityScore();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.version = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.score = reader.int64().toString();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            version: isSet(object.version) ? globalThis.String(object.version) : "",
            score: isSet(object.score) ? globalThis.String(object.score) : "0",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.version !== "") {
            obj.version = message.version;
        }
        if (message.score !== "0") {
            obj.score = message.score;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastChatMessage_CommentQualityScoreDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastChatMessage_CommentQualityScore();
        message.version = object.version ?? "";
        message.score = object.score ?? "0";
        return message;
    },
};
function createBaseEmoteUploadInfo() {
    return { userId: "0", emoteUploadSource: undefined, userInfo: undefined, userIdStr: "" };
}
exports.EmoteUploadInfoDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.userId !== "0") {
            writer.uint32(8).int64(message.userId);
        }
        if (message.emoteUploadSource !== undefined) {
            writer.uint32(16).int32(message.emoteUploadSource);
        }
        if (message.userInfo !== undefined) {
            exports.UserDecoder.encode(message.userInfo, writer.uint32(26).fork()).join();
        }
        if (message.userIdStr !== "") {
            writer.uint32(34).string(message.userIdStr);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseEmoteUploadInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.userId = reader.int64().toString();
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.emoteUploadSource = reader.int32();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.userInfo = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.userIdStr = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            userId: isSet(object.userId) ? globalThis.String(object.userId) : "0",
            emoteUploadSource: isSet(object.emoteUploadSource)
                ? emoteUploadInfo_UserEmoteUploadSourceFromJSON(object.emoteUploadSource)
                : undefined,
            userInfo: isSet(object.userInfo) ? exports.UserDecoder.fromJSON(object.userInfo) : undefined,
            userIdStr: isSet(object.userIdStr) ? globalThis.String(object.userIdStr) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.userId !== "0") {
            obj.userId = message.userId;
        }
        if (message.emoteUploadSource !== undefined) {
            obj.emoteUploadSource = emoteUploadInfo_UserEmoteUploadSourceToJSON(message.emoteUploadSource);
        }
        if (message.userInfo !== undefined) {
            obj.userInfo = exports.UserDecoder.toJSON(message.userInfo);
        }
        if (message.userIdStr !== "") {
            obj.userIdStr = message.userIdStr;
        }
        return obj;
    },
    create(base) {
        return exports.EmoteUploadInfoDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseEmoteUploadInfo();
        message.userId = object.userId ?? "0";
        message.emoteUploadSource = object.emoteUploadSource ?? undefined;
        message.userInfo = (object.userInfo !== undefined && object.userInfo !== null)
            ? exports.UserDecoder.fromPartial(object.userInfo)
            : undefined;
        message.userIdStr = object.userIdStr ?? "";
        return message;
    },
};
function createBaseWebcastEmoteChatMessage() {
    return { user: undefined, emote: undefined };
}
exports.WebcastEmoteChatMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        if (message.emote !== undefined) {
            exports.EmoteDetailsDecoder.encode(message.emote, writer.uint32(26).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastEmoteChatMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.emote = exports.EmoteDetailsDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            emote: isSet(object.emote) ? exports.EmoteDetailsDecoder.fromJSON(object.emote) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.emote !== undefined) {
            obj.emote = exports.EmoteDetailsDecoder.toJSON(message.emote);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastEmoteChatMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastEmoteChatMessage();
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.emote = (object.emote !== undefined && object.emote !== null)
            ? exports.EmoteDetailsDecoder.fromPartial(object.emote)
            : undefined;
        return message;
    },
};
function createBaseWebcastSubEmote() {
    return { placeInComment: 0, emote: undefined };
}
exports.WebcastSubEmoteDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.placeInComment !== 0) {
            writer.uint32(8).int32(message.placeInComment);
        }
        if (message.emote !== undefined) {
            exports.EmoteDetailsDecoder.encode(message.emote, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastSubEmote();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.placeInComment = reader.int32();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.emote = exports.EmoteDetailsDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            placeInComment: isSet(object.placeInComment) ? globalThis.Number(object.placeInComment) : 0,
            emote: isSet(object.emote) ? exports.EmoteDetailsDecoder.fromJSON(object.emote) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.placeInComment !== 0) {
            obj.placeInComment = Math.round(message.placeInComment);
        }
        if (message.emote !== undefined) {
            obj.emote = exports.EmoteDetailsDecoder.toJSON(message.emote);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastSubEmoteDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastSubEmote();
        message.placeInComment = object.placeInComment ?? 0;
        message.emote = (object.emote !== undefined && object.emote !== null)
            ? exports.EmoteDetailsDecoder.fromPartial(object.emote)
            : undefined;
        return message;
    },
};
function createBaseWebcastMemberMessage() {
    return { event: undefined, user: undefined, actionId: 0 };
}
exports.WebcastMemberMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        if (message.actionId !== 0) {
            writer.uint32(80).int32(message.actionId);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastMemberMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 10: {
                    if (tag !== 80) {
                        break;
                    }
                    message.actionId = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            actionId: isSet(object.actionId) ? globalThis.Number(object.actionId) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.actionId !== 0) {
            obj.actionId = Math.round(message.actionId);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastMemberMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastMemberMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.actionId = object.actionId ?? 0;
        return message;
    },
};
function createBaseWebcastGiftMessage() {
    return {
        event: undefined,
        giftId: 0,
        repeatCount: 0,
        user: undefined,
        repeatEnd: 0,
        groupId: "0",
        giftDetails: undefined,
        monitorExtra: "",
        giftExtra: undefined,
    };
}
exports.WebcastGiftMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.giftId !== 0) {
            writer.uint32(16).int32(message.giftId);
        }
        if (message.repeatCount !== 0) {
            writer.uint32(40).int32(message.repeatCount);
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(58).fork()).join();
        }
        if (message.repeatEnd !== 0) {
            writer.uint32(72).int32(message.repeatEnd);
        }
        if (message.groupId !== "0") {
            writer.uint32(88).uint64(message.groupId);
        }
        if (message.giftDetails !== undefined) {
            exports.WebcastGiftMessageGiftDetailsDecoder.encode(message.giftDetails, writer.uint32(122).fork()).join();
        }
        if (message.monitorExtra !== "") {
            writer.uint32(178).string(message.monitorExtra);
        }
        if (message.giftExtra !== undefined) {
            exports.WebcastGiftMessageGiftExtraDecoder.encode(message.giftExtra, writer.uint32(186).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastGiftMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.giftId = reader.int32();
                    continue;
                }
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.repeatCount = reader.int32();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 9: {
                    if (tag !== 72) {
                        break;
                    }
                    message.repeatEnd = reader.int32();
                    continue;
                }
                case 11: {
                    if (tag !== 88) {
                        break;
                    }
                    message.groupId = reader.uint64().toString();
                    continue;
                }
                case 15: {
                    if (tag !== 122) {
                        break;
                    }
                    message.giftDetails = exports.WebcastGiftMessageGiftDetailsDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 22: {
                    if (tag !== 178) {
                        break;
                    }
                    message.monitorExtra = reader.string();
                    continue;
                }
                case 23: {
                    if (tag !== 186) {
                        break;
                    }
                    message.giftExtra = exports.WebcastGiftMessageGiftExtraDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            giftId: isSet(object.giftId) ? globalThis.Number(object.giftId) : 0,
            repeatCount: isSet(object.repeatCount) ? globalThis.Number(object.repeatCount) : 0,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            repeatEnd: isSet(object.repeatEnd) ? globalThis.Number(object.repeatEnd) : 0,
            groupId: isSet(object.groupId) ? globalThis.String(object.groupId) : "0",
            giftDetails: isSet(object.giftDetails) ? exports.WebcastGiftMessageGiftDetailsDecoder.fromJSON(object.giftDetails) : undefined,
            monitorExtra: isSet(object.monitorExtra) ? globalThis.String(object.monitorExtra) : "",
            giftExtra: isSet(object.giftExtra) ? exports.WebcastGiftMessageGiftExtraDecoder.fromJSON(object.giftExtra) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.giftId !== 0) {
            obj.giftId = Math.round(message.giftId);
        }
        if (message.repeatCount !== 0) {
            obj.repeatCount = Math.round(message.repeatCount);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.repeatEnd !== 0) {
            obj.repeatEnd = Math.round(message.repeatEnd);
        }
        if (message.groupId !== "0") {
            obj.groupId = message.groupId;
        }
        if (message.giftDetails !== undefined) {
            obj.giftDetails = exports.WebcastGiftMessageGiftDetailsDecoder.toJSON(message.giftDetails);
        }
        if (message.monitorExtra !== "") {
            obj.monitorExtra = message.monitorExtra;
        }
        if (message.giftExtra !== undefined) {
            obj.giftExtra = exports.WebcastGiftMessageGiftExtraDecoder.toJSON(message.giftExtra);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastGiftMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastGiftMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.giftId = object.giftId ?? 0;
        message.repeatCount = object.repeatCount ?? 0;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.repeatEnd = object.repeatEnd ?? 0;
        message.groupId = object.groupId ?? "0";
        message.giftDetails = (object.giftDetails !== undefined && object.giftDetails !== null)
            ? exports.WebcastGiftMessageGiftDetailsDecoder.fromPartial(object.giftDetails)
            : undefined;
        message.monitorExtra = object.monitorExtra ?? "";
        message.giftExtra = (object.giftExtra !== undefined && object.giftExtra !== null)
            ? exports.WebcastGiftMessageGiftExtraDecoder.fromPartial(object.giftExtra)
            : undefined;
        return message;
    },
};
function createBaseWebcastGiftMessageGiftDetails() {
    return { giftImage: undefined, giftName: "", describe: "", giftType: 0, diamondCount: 0 };
}
exports.WebcastGiftMessageGiftDetailsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.giftImage !== undefined) {
            exports.WebcastGiftMessageGiftImageDecoder.encode(message.giftImage, writer.uint32(10).fork()).join();
        }
        if (message.giftName !== "") {
            writer.uint32(130).string(message.giftName);
        }
        if (message.describe !== "") {
            writer.uint32(18).string(message.describe);
        }
        if (message.giftType !== 0) {
            writer.uint32(88).int32(message.giftType);
        }
        if (message.diamondCount !== 0) {
            writer.uint32(96).int32(message.diamondCount);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastGiftMessageGiftDetails();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.giftImage = exports.WebcastGiftMessageGiftImageDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 16: {
                    if (tag !== 130) {
                        break;
                    }
                    message.giftName = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.describe = reader.string();
                    continue;
                }
                case 11: {
                    if (tag !== 88) {
                        break;
                    }
                    message.giftType = reader.int32();
                    continue;
                }
                case 12: {
                    if (tag !== 96) {
                        break;
                    }
                    message.diamondCount = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            giftImage: isSet(object.giftImage) ? exports.WebcastGiftMessageGiftImageDecoder.fromJSON(object.giftImage) : undefined,
            giftName: isSet(object.giftName) ? globalThis.String(object.giftName) : "",
            describe: isSet(object.describe) ? globalThis.String(object.describe) : "",
            giftType: isSet(object.giftType) ? globalThis.Number(object.giftType) : 0,
            diamondCount: isSet(object.diamondCount) ? globalThis.Number(object.diamondCount) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.giftImage !== undefined) {
            obj.giftImage = exports.WebcastGiftMessageGiftImageDecoder.toJSON(message.giftImage);
        }
        if (message.giftName !== "") {
            obj.giftName = message.giftName;
        }
        if (message.describe !== "") {
            obj.describe = message.describe;
        }
        if (message.giftType !== 0) {
            obj.giftType = Math.round(message.giftType);
        }
        if (message.diamondCount !== 0) {
            obj.diamondCount = Math.round(message.diamondCount);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastGiftMessageGiftDetailsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastGiftMessageGiftDetails();
        message.giftImage = (object.giftImage !== undefined && object.giftImage !== null)
            ? exports.WebcastGiftMessageGiftImageDecoder.fromPartial(object.giftImage)
            : undefined;
        message.giftName = object.giftName ?? "";
        message.describe = object.describe ?? "";
        message.giftType = object.giftType ?? 0;
        message.diamondCount = object.diamondCount ?? 0;
        return message;
    },
};
function createBaseWebcastGiftMessageGiftExtra() {
    return { timestamp: "0", receiverUserId: "0" };
}
exports.WebcastGiftMessageGiftExtraDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.timestamp !== "0") {
            writer.uint32(48).uint64(message.timestamp);
        }
        if (message.receiverUserId !== "0") {
            writer.uint32(64).uint64(message.receiverUserId);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastGiftMessageGiftExtra();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.timestamp = reader.uint64().toString();
                    continue;
                }
                case 8: {
                    if (tag !== 64) {
                        break;
                    }
                    message.receiverUserId = reader.uint64().toString();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            timestamp: isSet(object.timestamp) ? globalThis.String(object.timestamp) : "0",
            receiverUserId: isSet(object.receiverUserId) ? globalThis.String(object.receiverUserId) : "0",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.timestamp !== "0") {
            obj.timestamp = message.timestamp;
        }
        if (message.receiverUserId !== "0") {
            obj.receiverUserId = message.receiverUserId;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastGiftMessageGiftExtraDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastGiftMessageGiftExtra();
        message.timestamp = object.timestamp ?? "0";
        message.receiverUserId = object.receiverUserId ?? "0";
        return message;
    },
};
function createBaseWebcastGiftMessageGiftImage() {
    return { giftPictureUrl: "" };
}
exports.WebcastGiftMessageGiftImageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.giftPictureUrl !== "") {
            writer.uint32(10).string(message.giftPictureUrl);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastGiftMessageGiftImage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.giftPictureUrl = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { giftPictureUrl: isSet(object.giftPictureUrl) ? globalThis.String(object.giftPictureUrl) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.giftPictureUrl !== "") {
            obj.giftPictureUrl = message.giftPictureUrl;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastGiftMessageGiftImageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastGiftMessageGiftImage();
        message.giftPictureUrl = object.giftPictureUrl ?? "";
        return message;
    },
};
function createBaseWebcastLinkMicBattle() {
    return { battleUsers: [] };
}
exports.WebcastLinkMicBattleDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.battleUsers) {
            exports.WebcastLinkMicBattleItemsDecoder.encode(v, writer.uint32(82).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicBattle();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.battleUsers.push(exports.WebcastLinkMicBattleItemsDecoder.decode(reader, reader.uint32()));
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            battleUsers: globalThis.Array.isArray(object?.battleUsers)
                ? object.battleUsers.map((e) => exports.WebcastLinkMicBattleItemsDecoder.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.battleUsers?.length) {
            obj.battleUsers = message.battleUsers.map((e) => exports.WebcastLinkMicBattleItemsDecoder.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicBattleDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicBattle();
        message.battleUsers = object.battleUsers?.map((e) => exports.WebcastLinkMicBattleItemsDecoder.fromPartial(e)) || [];
        return message;
    },
};
function createBaseWebcastLinkMicBattleItems() {
    return { battleGroup: undefined };
}
exports.WebcastLinkMicBattleItemsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.battleGroup !== undefined) {
            exports.WebcastLinkMicBattleGroupDecoder.encode(message.battleGroup, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicBattleItems();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.battleGroup = exports.WebcastLinkMicBattleGroupDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            battleGroup: isSet(object.battleGroup) ? exports.WebcastLinkMicBattleGroupDecoder.fromJSON(object.battleGroup) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.battleGroup !== undefined) {
            obj.battleGroup = exports.WebcastLinkMicBattleGroupDecoder.toJSON(message.battleGroup);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicBattleItemsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicBattleItems();
        message.battleGroup = (object.battleGroup !== undefined && object.battleGroup !== null)
            ? exports.WebcastLinkMicBattleGroupDecoder.fromPartial(object.battleGroup)
            : undefined;
        return message;
    },
};
function createBaseWebcastLinkMicBattleGroup() {
    return { user: undefined };
}
exports.WebcastLinkMicBattleGroupDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user !== undefined) {
            exports.LinkUserDecoder.encode(message.user, writer.uint32(10).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicBattleGroup();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.user = exports.LinkUserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { user: isSet(object.user) ? exports.LinkUserDecoder.fromJSON(object.user) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.user !== undefined) {
            obj.user = exports.LinkUserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicBattleGroupDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicBattleGroup();
        message.user = (object.user !== undefined && object.user !== null) ? exports.LinkUserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseWebcastLinkMicArmies() {
    return { battleItems: [], battleStatus: 0 };
}
exports.WebcastLinkMicArmiesDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.battleItems) {
            exports.WebcastLinkMicArmiesItemsDecoder.encode(v, writer.uint32(26).fork()).join();
        }
        if (message.battleStatus !== 0) {
            writer.uint32(56).int32(message.battleStatus);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicArmies();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.battleItems.push(exports.WebcastLinkMicArmiesItemsDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 7: {
                    if (tag !== 56) {
                        break;
                    }
                    message.battleStatus = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            battleItems: globalThis.Array.isArray(object?.battleItems)
                ? object.battleItems.map((e) => exports.WebcastLinkMicArmiesItemsDecoder.fromJSON(e))
                : [],
            battleStatus: isSet(object.battleStatus) ? globalThis.Number(object.battleStatus) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.battleItems?.length) {
            obj.battleItems = message.battleItems.map((e) => exports.WebcastLinkMicArmiesItemsDecoder.toJSON(e));
        }
        if (message.battleStatus !== 0) {
            obj.battleStatus = Math.round(message.battleStatus);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicArmiesDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicArmies();
        message.battleItems = object.battleItems?.map((e) => exports.WebcastLinkMicArmiesItemsDecoder.fromPartial(e)) || [];
        message.battleStatus = object.battleStatus ?? 0;
        return message;
    },
};
function createBaseWebcastLinkMicArmiesItems() {
    return { hostUserId: "0", battleGroups: [] };
}
exports.WebcastLinkMicArmiesItemsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.hostUserId !== "0") {
            writer.uint32(8).uint64(message.hostUserId);
        }
        for (const v of message.battleGroups) {
            exports.WebcastLinkMicArmiesGroupDecoder.encode(v, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicArmiesItems();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.hostUserId = reader.uint64().toString();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.battleGroups.push(exports.WebcastLinkMicArmiesGroupDecoder.decode(reader, reader.uint32()));
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            hostUserId: isSet(object.hostUserId) ? globalThis.String(object.hostUserId) : "0",
            battleGroups: globalThis.Array.isArray(object?.battleGroups)
                ? object.battleGroups.map((e) => exports.WebcastLinkMicArmiesGroupDecoder.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.hostUserId !== "0") {
            obj.hostUserId = message.hostUserId;
        }
        if (message.battleGroups?.length) {
            obj.battleGroups = message.battleGroups.map((e) => exports.WebcastLinkMicArmiesGroupDecoder.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicArmiesItemsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicArmiesItems();
        message.hostUserId = object.hostUserId ?? "0";
        message.battleGroups = object.battleGroups?.map((e) => exports.WebcastLinkMicArmiesGroupDecoder.fromPartial(e)) || [];
        return message;
    },
};
function createBaseWebcastLinkMicArmiesGroup() {
    return { users: [], points: 0 };
}
exports.WebcastLinkMicArmiesGroupDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.users) {
            exports.UserDecoder.encode(v, writer.uint32(10).fork()).join();
        }
        if (message.points !== 0) {
            writer.uint32(16).int32(message.points);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLinkMicArmiesGroup();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.users.push(exports.UserDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.points = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            users: globalThis.Array.isArray(object?.users) ? object.users.map((e) => exports.UserDecoder.fromJSON(e)) : [],
            points: isSet(object.points) ? globalThis.Number(object.points) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.users?.length) {
            obj.users = message.users.map((e) => exports.UserDecoder.toJSON(e));
        }
        if (message.points !== 0) {
            obj.points = Math.round(message.points);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLinkMicArmiesGroupDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLinkMicArmiesGroup();
        message.users = object.users?.map((e) => exports.UserDecoder.fromPartial(e)) || [];
        message.points = object.points ?? 0;
        return message;
    },
};
function createBaseWebcastSocialMessage() {
    return { event: undefined, user: undefined };
}
exports.WebcastSocialMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastSocialMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastSocialMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastSocialMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseWebcastLikeMessage() {
    return { event: undefined, user: undefined, likeCount: 0, totalLikeCount: 0 };
}
exports.WebcastLikeMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(42).fork()).join();
        }
        if (message.likeCount !== 0) {
            writer.uint32(16).int32(message.likeCount);
        }
        if (message.totalLikeCount !== 0) {
            writer.uint32(24).int32(message.totalLikeCount);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLikeMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.likeCount = reader.int32();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.totalLikeCount = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            likeCount: isSet(object.likeCount) ? globalThis.Number(object.likeCount) : 0,
            totalLikeCount: isSet(object.totalLikeCount) ? globalThis.Number(object.totalLikeCount) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.likeCount !== 0) {
            obj.likeCount = Math.round(message.likeCount);
        }
        if (message.totalLikeCount !== 0) {
            obj.totalLikeCount = Math.round(message.totalLikeCount);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLikeMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLikeMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.likeCount = object.likeCount ?? 0;
        message.totalLikeCount = object.totalLikeCount ?? 0;
        return message;
    },
};
function createBaseWebcastQuestionNewMessage() {
    return { questionDetails: undefined };
}
exports.WebcastQuestionNewMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.questionDetails !== undefined) {
            exports.QuestionDetailsDecoder.encode(message.questionDetails, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastQuestionNewMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.questionDetails = exports.QuestionDetailsDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            questionDetails: isSet(object.questionDetails) ? exports.QuestionDetailsDecoder.fromJSON(object.questionDetails) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.questionDetails !== undefined) {
            obj.questionDetails = exports.QuestionDetailsDecoder.toJSON(message.questionDetails);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastQuestionNewMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastQuestionNewMessage();
        message.questionDetails = (object.questionDetails !== undefined && object.questionDetails !== null)
            ? exports.QuestionDetailsDecoder.fromPartial(object.questionDetails)
            : undefined;
        return message;
    },
};
function createBaseQuestionDetails() {
    return { questionText: "", user: undefined };
}
exports.QuestionDetailsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.questionText !== "") {
            writer.uint32(18).string(message.questionText);
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(42).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseQuestionDetails();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.questionText = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            questionText: isSet(object.questionText) ? globalThis.String(object.questionText) : "",
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.questionText !== "") {
            obj.questionText = message.questionText;
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.QuestionDetailsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseQuestionDetails();
        message.questionText = object.questionText ?? "";
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseWebcastMessageEvent() {
    return { msgId: "0", createTime: "0", eventDetails: undefined };
}
exports.WebcastMessageEventDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.msgId !== "0") {
            writer.uint32(16).uint64(message.msgId);
        }
        if (message.createTime !== "0") {
            writer.uint32(32).uint64(message.createTime);
        }
        if (message.eventDetails !== undefined) {
            exports.WebcastMessageEventDetailsDecoder.encode(message.eventDetails, writer.uint32(66).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastMessageEvent();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.msgId = reader.uint64().toString();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.createTime = reader.uint64().toString();
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.eventDetails = exports.WebcastMessageEventDetailsDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            msgId: isSet(object.msgId) ? globalThis.String(object.msgId) : "0",
            createTime: isSet(object.createTime) ? globalThis.String(object.createTime) : "0",
            eventDetails: isSet(object.eventDetails) ? exports.WebcastMessageEventDetailsDecoder.fromJSON(object.eventDetails) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.msgId !== "0") {
            obj.msgId = message.msgId;
        }
        if (message.createTime !== "0") {
            obj.createTime = message.createTime;
        }
        if (message.eventDetails !== undefined) {
            obj.eventDetails = exports.WebcastMessageEventDetailsDecoder.toJSON(message.eventDetails);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastMessageEventDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastMessageEvent();
        message.msgId = object.msgId ?? "0";
        message.createTime = object.createTime ?? "0";
        message.eventDetails = (object.eventDetails !== undefined && object.eventDetails !== null)
            ? exports.WebcastMessageEventDetailsDecoder.fromPartial(object.eventDetails)
            : undefined;
        return message;
    },
};
function createBaseWebcastMessageEventDetails() {
    return { displayType: "", label: "" };
}
exports.WebcastMessageEventDetailsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.displayType !== "") {
            writer.uint32(10).string(message.displayType);
        }
        if (message.label !== "") {
            writer.uint32(18).string(message.label);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastMessageEventDetails();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.displayType = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.label = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            displayType: isSet(object.displayType) ? globalThis.String(object.displayType) : "",
            label: isSet(object.label) ? globalThis.String(object.label) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.displayType !== "") {
            obj.displayType = message.displayType;
        }
        if (message.label !== "") {
            obj.label = message.label;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastMessageEventDetailsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastMessageEventDetails();
        message.displayType = object.displayType ?? "";
        message.label = object.label ?? "";
        return message;
    },
};
function createBaseWebcastLiveIntroMessage() {
    return { id: "0", description: "", user: undefined };
}
exports.WebcastLiveIntroMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.id !== "0") {
            writer.uint32(16).uint64(message.id);
        }
        if (message.description !== "") {
            writer.uint32(34).string(message.description);
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(42).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastLiveIntroMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.id = reader.uint64().toString();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.description = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? globalThis.String(object.id) : "0",
            description: isSet(object.description) ? globalThis.String(object.description) : "",
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.id !== "0") {
            obj.id = message.id;
        }
        if (message.description !== "") {
            obj.description = message.description;
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastLiveIntroMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastLiveIntroMessage();
        message.id = object.id ?? "0";
        message.description = object.description ?? "";
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseSystemMessage() {
    return { description: "" };
}
exports.SystemMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.description !== "") {
            writer.uint32(18).string(message.description);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseSystemMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.description = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { description: isSet(object.description) ? globalThis.String(object.description) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.description !== "") {
            obj.description = message.description;
        }
        return obj;
    },
    create(base) {
        return exports.SystemMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseSystemMessage();
        message.description = object.description ?? "";
        return message;
    },
};
function createBaseWebcastInRoomBannerMessage() {
    return { data: "" };
}
exports.WebcastInRoomBannerMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.data !== "") {
            writer.uint32(18).string(message.data);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastInRoomBannerMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.data = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { data: isSet(object.data) ? globalThis.String(object.data) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.data !== "") {
            obj.data = message.data;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastInRoomBannerMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastInRoomBannerMessage();
        message.data = object.data ?? "";
        return message;
    },
};
function createBaseRankItem() {
    return { colour: "", id: "0" };
}
exports.RankItemDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.colour !== "") {
            writer.uint32(10).string(message.colour);
        }
        if (message.id !== "0") {
            writer.uint32(32).uint64(message.id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRankItem();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.colour = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.id = reader.uint64().toString();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            colour: isSet(object.colour) ? globalThis.String(object.colour) : "",
            id: isSet(object.id) ? globalThis.String(object.id) : "0",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.colour !== "") {
            obj.colour = message.colour;
        }
        if (message.id !== "0") {
            obj.id = message.id;
        }
        return obj;
    },
    create(base) {
        return exports.RankItemDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseRankItem();
        message.colour = object.colour ?? "";
        message.id = object.id ?? "0";
        return message;
    },
};
function createBaseWeeklyRanking() {
    return { type: "", label: "", rank: undefined };
}
exports.WeeklyRankingDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.type !== "") {
            writer.uint32(10).string(message.type);
        }
        if (message.label !== "") {
            writer.uint32(18).string(message.label);
        }
        if (message.rank !== undefined) {
            exports.RankItemDecoder.encode(message.rank, writer.uint32(26).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWeeklyRanking();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.type = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.label = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.rank = exports.RankItemDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            type: isSet(object.type) ? globalThis.String(object.type) : "",
            label: isSet(object.label) ? globalThis.String(object.label) : "",
            rank: isSet(object.rank) ? exports.RankItemDecoder.fromJSON(object.rank) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== "") {
            obj.type = message.type;
        }
        if (message.label !== "") {
            obj.label = message.label;
        }
        if (message.rank !== undefined) {
            obj.rank = exports.RankItemDecoder.toJSON(message.rank);
        }
        return obj;
    },
    create(base) {
        return exports.WeeklyRankingDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWeeklyRanking();
        message.type = object.type ?? "";
        message.label = object.label ?? "";
        message.rank = (object.rank !== undefined && object.rank !== null) ? exports.RankItemDecoder.fromPartial(object.rank) : undefined;
        return message;
    },
};
function createBaseRankContainer() {
    return { rankings: undefined };
}
exports.RankContainerDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.rankings !== undefined) {
            exports.WeeklyRankingDecoder.encode(message.rankings, writer.uint32(34).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRankContainer();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.rankings = exports.WeeklyRankingDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { rankings: isSet(object.rankings) ? exports.WeeklyRankingDecoder.fromJSON(object.rankings) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.rankings !== undefined) {
            obj.rankings = exports.WeeklyRankingDecoder.toJSON(message.rankings);
        }
        return obj;
    },
    create(base) {
        return exports.RankContainerDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseRankContainer();
        message.rankings = (object.rankings !== undefined && object.rankings !== null)
            ? exports.WeeklyRankingDecoder.fromPartial(object.rankings)
            : undefined;
        return message;
    },
};
function createBaseWebcastHourlyRankMessage() {
    return { data: undefined };
}
exports.WebcastHourlyRankMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.data !== undefined) {
            exports.RankContainerDecoder.encode(message.data, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastHourlyRankMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.data = exports.RankContainerDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { data: isSet(object.data) ? exports.RankContainerDecoder.fromJSON(object.data) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.data !== undefined) {
            obj.data = exports.RankContainerDecoder.toJSON(message.data);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastHourlyRankMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastHourlyRankMessage();
        message.data = (object.data !== undefined && object.data !== null)
            ? exports.RankContainerDecoder.fromPartial(object.data)
            : undefined;
        return message;
    },
};
function createBaseEmoteDetails() {
    return { emoteId: "", image: undefined };
}
exports.EmoteDetailsDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.emoteId !== "") {
            writer.uint32(10).string(message.emoteId);
        }
        if (message.image !== undefined) {
            exports.EmoteImageDecoder.encode(message.image, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseEmoteDetails();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.emoteId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.image = exports.EmoteImageDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            emoteId: isSet(object.emoteId) ? globalThis.String(object.emoteId) : "",
            image: isSet(object.image) ? exports.EmoteImageDecoder.fromJSON(object.image) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.emoteId !== "") {
            obj.emoteId = message.emoteId;
        }
        if (message.image !== undefined) {
            obj.image = exports.EmoteImageDecoder.toJSON(message.image);
        }
        return obj;
    },
    create(base) {
        return exports.EmoteDetailsDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseEmoteDetails();
        message.emoteId = object.emoteId ?? "";
        message.image = (object.image !== undefined && object.image !== null)
            ? exports.EmoteImageDecoder.fromPartial(object.image)
            : undefined;
        return message;
    },
};
function createBaseEmoteImage() {
    return { imageUrl: "" };
}
exports.EmoteImageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.imageUrl !== "") {
            writer.uint32(10).string(message.imageUrl);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseEmoteImage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.imageUrl = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { imageUrl: isSet(object.imageUrl) ? globalThis.String(object.imageUrl) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.imageUrl !== "") {
            obj.imageUrl = message.imageUrl;
        }
        return obj;
    },
    create(base) {
        return exports.EmoteImageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseEmoteImage();
        message.imageUrl = object.imageUrl ?? "";
        return message;
    },
};
function createBaseWebcastEnvelopeMessage() {
    return { treasureBoxData: undefined, treasureBoxUser: undefined };
}
exports.WebcastEnvelopeMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.treasureBoxData !== undefined) {
            exports.TreasureBoxDataDecoder.encode(message.treasureBoxData, writer.uint32(18).fork()).join();
        }
        if (message.treasureBoxUser !== undefined) {
            exports.TreasureBoxUserDecoder.encode(message.treasureBoxUser, writer.uint32(10).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastEnvelopeMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.treasureBoxData = exports.TreasureBoxDataDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.treasureBoxUser = exports.TreasureBoxUserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            treasureBoxData: isSet(object.treasureBoxData) ? exports.TreasureBoxDataDecoder.fromJSON(object.treasureBoxData) : undefined,
            treasureBoxUser: isSet(object.treasureBoxUser) ? exports.TreasureBoxUserDecoder.fromJSON(object.treasureBoxUser) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.treasureBoxData !== undefined) {
            obj.treasureBoxData = exports.TreasureBoxDataDecoder.toJSON(message.treasureBoxData);
        }
        if (message.treasureBoxUser !== undefined) {
            obj.treasureBoxUser = exports.TreasureBoxUserDecoder.toJSON(message.treasureBoxUser);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastEnvelopeMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastEnvelopeMessage();
        message.treasureBoxData = (object.treasureBoxData !== undefined && object.treasureBoxData !== null)
            ? exports.TreasureBoxDataDecoder.fromPartial(object.treasureBoxData)
            : undefined;
        message.treasureBoxUser = (object.treasureBoxUser !== undefined && object.treasureBoxUser !== null)
            ? exports.TreasureBoxUserDecoder.fromPartial(object.treasureBoxUser)
            : undefined;
        return message;
    },
};
function createBaseTreasureBoxUser() {
    return { user2: undefined };
}
exports.TreasureBoxUserDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user2 !== undefined) {
            exports.TreasureBoxUser2Decoder.encode(message.user2, writer.uint32(66).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTreasureBoxUser();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.user2 = exports.TreasureBoxUser2Decoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { user2: isSet(object.user2) ? exports.TreasureBoxUser2Decoder.fromJSON(object.user2) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.user2 !== undefined) {
            obj.user2 = exports.TreasureBoxUser2Decoder.toJSON(message.user2);
        }
        return obj;
    },
    create(base) {
        return exports.TreasureBoxUserDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTreasureBoxUser();
        message.user2 = (object.user2 !== undefined && object.user2 !== null)
            ? exports.TreasureBoxUser2Decoder.fromPartial(object.user2)
            : undefined;
        return message;
    },
};
function createBaseTreasureBoxUser2() {
    return { user3: [] };
}
exports.TreasureBoxUser2Decoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.user3) {
            exports.TreasureBoxUser3Decoder.encode(v, writer.uint32(34).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTreasureBoxUser2();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.user3.push(exports.TreasureBoxUser3Decoder.decode(reader, reader.uint32()));
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            user3: globalThis.Array.isArray(object?.user3) ? object.user3.map((e) => exports.TreasureBoxUser3Decoder.fromJSON(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.user3?.length) {
            obj.user3 = message.user3.map((e) => exports.TreasureBoxUser3Decoder.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return exports.TreasureBoxUser2Decoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTreasureBoxUser2();
        message.user3 = object.user3?.map((e) => exports.TreasureBoxUser3Decoder.fromPartial(e)) || [];
        return message;
    },
};
function createBaseTreasureBoxUser3() {
    return { user4: undefined };
}
exports.TreasureBoxUser3Decoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user4 !== undefined) {
            exports.TreasureBoxUser4Decoder.encode(message.user4, writer.uint32(170).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTreasureBoxUser3();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 21: {
                    if (tag !== 170) {
                        break;
                    }
                    message.user4 = exports.TreasureBoxUser4Decoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { user4: isSet(object.user4) ? exports.TreasureBoxUser4Decoder.fromJSON(object.user4) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.user4 !== undefined) {
            obj.user4 = exports.TreasureBoxUser4Decoder.toJSON(message.user4);
        }
        return obj;
    },
    create(base) {
        return exports.TreasureBoxUser3Decoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTreasureBoxUser3();
        message.user4 = (object.user4 !== undefined && object.user4 !== null)
            ? exports.TreasureBoxUser4Decoder.fromPartial(object.user4)
            : undefined;
        return message;
    },
};
function createBaseTreasureBoxUser4() {
    return { user: undefined };
}
exports.TreasureBoxUser4Decoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(10).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTreasureBoxUser4();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        return obj;
    },
    create(base) {
        return exports.TreasureBoxUser4Decoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTreasureBoxUser4();
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        return message;
    },
};
function createBaseTreasureBoxData() {
    return { coins: 0, canOpen: 0, timestamp: "0" };
}
exports.TreasureBoxDataDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.coins !== 0) {
            writer.uint32(40).uint32(message.coins);
        }
        if (message.canOpen !== 0) {
            writer.uint32(48).uint32(message.canOpen);
        }
        if (message.timestamp !== "0") {
            writer.uint32(56).uint64(message.timestamp);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTreasureBoxData();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.coins = reader.uint32();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.canOpen = reader.uint32();
                    continue;
                }
                case 7: {
                    if (tag !== 56) {
                        break;
                    }
                    message.timestamp = reader.uint64().toString();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            coins: isSet(object.coins) ? globalThis.Number(object.coins) : 0,
            canOpen: isSet(object.canOpen) ? globalThis.Number(object.canOpen) : 0,
            timestamp: isSet(object.timestamp) ? globalThis.String(object.timestamp) : "0",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.coins !== 0) {
            obj.coins = Math.round(message.coins);
        }
        if (message.canOpen !== 0) {
            obj.canOpen = Math.round(message.canOpen);
        }
        if (message.timestamp !== "0") {
            obj.timestamp = message.timestamp;
        }
        return obj;
    },
    create(base) {
        return exports.TreasureBoxDataDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseTreasureBoxData();
        message.coins = object.coins ?? 0;
        message.canOpen = object.canOpen ?? 0;
        message.timestamp = object.timestamp ?? "0";
        return message;
    },
};
function createBaseWebcastSubNotifyMessage() {
    return {
        event: undefined,
        user: undefined,
        exhibitionType: 0,
        subMonth: 0,
        subscribeType: 0,
        oldSubscribeStatus: 0,
        subscribingStatus: 0,
    };
}
exports.WebcastSubNotifyMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(18).fork()).join();
        }
        if (message.exhibitionType !== 0) {
            writer.uint32(24).int32(message.exhibitionType);
        }
        if (message.subMonth !== 0) {
            writer.uint32(32).int32(message.subMonth);
        }
        if (message.subscribeType !== 0) {
            writer.uint32(40).int32(message.subscribeType);
        }
        if (message.oldSubscribeStatus !== 0) {
            writer.uint32(48).int32(message.oldSubscribeStatus);
        }
        if (message.subscribingStatus !== 0) {
            writer.uint32(64).int32(message.subscribingStatus);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastSubNotifyMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.exhibitionType = reader.int32();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.subMonth = reader.int32();
                    continue;
                }
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.subscribeType = reader.int32();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.oldSubscribeStatus = reader.int32();
                    continue;
                }
                case 8: {
                    if (tag !== 64) {
                        break;
                    }
                    message.subscribingStatus = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            exhibitionType: isSet(object.exhibitionType) ? globalThis.Number(object.exhibitionType) : 0,
            subMonth: isSet(object.subMonth) ? globalThis.Number(object.subMonth) : 0,
            subscribeType: isSet(object.subscribeType) ? globalThis.Number(object.subscribeType) : 0,
            oldSubscribeStatus: isSet(object.oldSubscribeStatus) ? globalThis.Number(object.oldSubscribeStatus) : 0,
            subscribingStatus: isSet(object.subscribingStatus) ? globalThis.Number(object.subscribingStatus) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.exhibitionType !== 0) {
            obj.exhibitionType = Math.round(message.exhibitionType);
        }
        if (message.subMonth !== 0) {
            obj.subMonth = Math.round(message.subMonth);
        }
        if (message.subscribeType !== 0) {
            obj.subscribeType = Math.round(message.subscribeType);
        }
        if (message.oldSubscribeStatus !== 0) {
            obj.oldSubscribeStatus = Math.round(message.oldSubscribeStatus);
        }
        if (message.subscribingStatus !== 0) {
            obj.subscribingStatus = Math.round(message.subscribingStatus);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastSubNotifyMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastSubNotifyMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.exhibitionType = object.exhibitionType ?? 0;
        message.subMonth = object.subMonth ?? 0;
        message.subscribeType = object.subscribeType ?? 0;
        message.oldSubscribeStatus = object.oldSubscribeStatus ?? 0;
        message.subscribingStatus = object.subscribingStatus ?? 0;
        return message;
    },
};
function createBaseUser() {
    return {
        userId: "0",
        nickname: "",
        profilePicture: undefined,
        uniqueId: "",
        secUid: "",
        badges: [],
        createTime: "0",
        bioDescription: "",
        followInfo: undefined,
    };
}
exports.UserDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.userId !== "0") {
            writer.uint32(8).uint64(message.userId);
        }
        if (message.nickname !== "") {
            writer.uint32(26).string(message.nickname);
        }
        if (message.profilePicture !== undefined) {
            exports.ProfilePictureDecoder.encode(message.profilePicture, writer.uint32(74).fork()).join();
        }
        if (message.uniqueId !== "") {
            writer.uint32(306).string(message.uniqueId);
        }
        if (message.secUid !== "") {
            writer.uint32(370).string(message.secUid);
        }
        for (const v of message.badges) {
            exports.UserBadgesAttributesDecoder.encode(v, writer.uint32(514).fork()).join();
        }
        if (message.createTime !== "0") {
            writer.uint32(128).uint64(message.createTime);
        }
        if (message.bioDescription !== "") {
            writer.uint32(42).string(message.bioDescription);
        }
        if (message.followInfo !== undefined) {
            exports.FollowInfoDecoder.encode(message.followInfo, writer.uint32(178).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUser();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.userId = reader.uint64().toString();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.nickname = reader.string();
                    continue;
                }
                case 9: {
                    if (tag !== 74) {
                        break;
                    }
                    message.profilePicture = exports.ProfilePictureDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 38: {
                    if (tag !== 306) {
                        break;
                    }
                    message.uniqueId = reader.string();
                    continue;
                }
                case 46: {
                    if (tag !== 370) {
                        break;
                    }
                    message.secUid = reader.string();
                    continue;
                }
                case 64: {
                    if (tag !== 514) {
                        break;
                    }
                    message.badges.push(exports.UserBadgesAttributesDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 16: {
                    if (tag !== 128) {
                        break;
                    }
                    message.createTime = reader.uint64().toString();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.bioDescription = reader.string();
                    continue;
                }
                case 22: {
                    if (tag !== 178) {
                        break;
                    }
                    message.followInfo = exports.FollowInfoDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            userId: isSet(object.userId) ? globalThis.String(object.userId) : "0",
            nickname: isSet(object.nickname) ? globalThis.String(object.nickname) : "",
            profilePicture: isSet(object.profilePicture) ? exports.ProfilePictureDecoder.fromJSON(object.profilePicture) : undefined,
            uniqueId: isSet(object.uniqueId) ? globalThis.String(object.uniqueId) : "",
            secUid: isSet(object.secUid) ? globalThis.String(object.secUid) : "",
            badges: globalThis.Array.isArray(object?.badges)
                ? object.badges.map((e) => exports.UserBadgesAttributesDecoder.fromJSON(e))
                : [],
            createTime: isSet(object.createTime) ? globalThis.String(object.createTime) : "0",
            bioDescription: isSet(object.bioDescription) ? globalThis.String(object.bioDescription) : "",
            followInfo: isSet(object.followInfo) ? exports.FollowInfoDecoder.fromJSON(object.followInfo) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.userId !== "0") {
            obj.userId = message.userId;
        }
        if (message.nickname !== "") {
            obj.nickname = message.nickname;
        }
        if (message.profilePicture !== undefined) {
            obj.profilePicture = exports.ProfilePictureDecoder.toJSON(message.profilePicture);
        }
        if (message.uniqueId !== "") {
            obj.uniqueId = message.uniqueId;
        }
        if (message.secUid !== "") {
            obj.secUid = message.secUid;
        }
        if (message.badges?.length) {
            obj.badges = message.badges.map((e) => exports.UserBadgesAttributesDecoder.toJSON(e));
        }
        if (message.createTime !== "0") {
            obj.createTime = message.createTime;
        }
        if (message.bioDescription !== "") {
            obj.bioDescription = message.bioDescription;
        }
        if (message.followInfo !== undefined) {
            obj.followInfo = exports.FollowInfoDecoder.toJSON(message.followInfo);
        }
        return obj;
    },
    create(base) {
        return exports.UserDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseUser();
        message.userId = object.userId ?? "0";
        message.nickname = object.nickname ?? "";
        message.profilePicture = (object.profilePicture !== undefined && object.profilePicture !== null)
            ? exports.ProfilePictureDecoder.fromPartial(object.profilePicture)
            : undefined;
        message.uniqueId = object.uniqueId ?? "";
        message.secUid = object.secUid ?? "";
        message.badges = object.badges?.map((e) => exports.UserBadgesAttributesDecoder.fromPartial(e)) || [];
        message.createTime = object.createTime ?? "0";
        message.bioDescription = object.bioDescription ?? "";
        message.followInfo = (object.followInfo !== undefined && object.followInfo !== null)
            ? exports.FollowInfoDecoder.fromPartial(object.followInfo)
            : undefined;
        return message;
    },
};
function createBaseFollowInfo() {
    return { followingCount: 0, followerCount: 0, followStatus: 0, pushStatus: 0 };
}
exports.FollowInfoDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.followingCount !== 0) {
            writer.uint32(8).int32(message.followingCount);
        }
        if (message.followerCount !== 0) {
            writer.uint32(16).int32(message.followerCount);
        }
        if (message.followStatus !== 0) {
            writer.uint32(24).int32(message.followStatus);
        }
        if (message.pushStatus !== 0) {
            writer.uint32(32).int32(message.pushStatus);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseFollowInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.followingCount = reader.int32();
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.followerCount = reader.int32();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.followStatus = reader.int32();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.pushStatus = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            followingCount: isSet(object.followingCount) ? globalThis.Number(object.followingCount) : 0,
            followerCount: isSet(object.followerCount) ? globalThis.Number(object.followerCount) : 0,
            followStatus: isSet(object.followStatus) ? globalThis.Number(object.followStatus) : 0,
            pushStatus: isSet(object.pushStatus) ? globalThis.Number(object.pushStatus) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.followingCount !== 0) {
            obj.followingCount = Math.round(message.followingCount);
        }
        if (message.followerCount !== 0) {
            obj.followerCount = Math.round(message.followerCount);
        }
        if (message.followStatus !== 0) {
            obj.followStatus = Math.round(message.followStatus);
        }
        if (message.pushStatus !== 0) {
            obj.pushStatus = Math.round(message.pushStatus);
        }
        return obj;
    },
    create(base) {
        return exports.FollowInfoDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseFollowInfo();
        message.followingCount = object.followingCount ?? 0;
        message.followerCount = object.followerCount ?? 0;
        message.followStatus = object.followStatus ?? 0;
        message.pushStatus = object.pushStatus ?? 0;
        return message;
    },
};
function createBaseLinkUser() {
    return { userId: "0", nickname: "", profilePicture: undefined, uniqueId: "" };
}
exports.LinkUserDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.userId !== "0") {
            writer.uint32(8).uint64(message.userId);
        }
        if (message.nickname !== "") {
            writer.uint32(18).string(message.nickname);
        }
        if (message.profilePicture !== undefined) {
            exports.ProfilePictureDecoder.encode(message.profilePicture, writer.uint32(26).fork()).join();
        }
        if (message.uniqueId !== "") {
            writer.uint32(34).string(message.uniqueId);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLinkUser();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.userId = reader.uint64().toString();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.nickname = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.profilePicture = exports.ProfilePictureDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.uniqueId = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            userId: isSet(object.userId) ? globalThis.String(object.userId) : "0",
            nickname: isSet(object.nickname) ? globalThis.String(object.nickname) : "",
            profilePicture: isSet(object.profilePicture) ? exports.ProfilePictureDecoder.fromJSON(object.profilePicture) : undefined,
            uniqueId: isSet(object.uniqueId) ? globalThis.String(object.uniqueId) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.userId !== "0") {
            obj.userId = message.userId;
        }
        if (message.nickname !== "") {
            obj.nickname = message.nickname;
        }
        if (message.profilePicture !== undefined) {
            obj.profilePicture = exports.ProfilePictureDecoder.toJSON(message.profilePicture);
        }
        if (message.uniqueId !== "") {
            obj.uniqueId = message.uniqueId;
        }
        return obj;
    },
    create(base) {
        return exports.LinkUserDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseLinkUser();
        message.userId = object.userId ?? "0";
        message.nickname = object.nickname ?? "";
        message.profilePicture = (object.profilePicture !== undefined && object.profilePicture !== null)
            ? exports.ProfilePictureDecoder.fromPartial(object.profilePicture)
            : undefined;
        message.uniqueId = object.uniqueId ?? "";
        return message;
    },
};
function createBaseProfilePicture() {
    return { urls: [] };
}
exports.ProfilePictureDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        for (const v of message.urls) {
            writer.uint32(10).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProfilePicture();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.urls.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { urls: globalThis.Array.isArray(object?.urls) ? object.urls.map((e) => globalThis.String(e)) : [] };
    },
    toJSON(message) {
        const obj = {};
        if (message.urls?.length) {
            obj.urls = message.urls;
        }
        return obj;
    },
    create(base) {
        return exports.ProfilePictureDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseProfilePicture();
        message.urls = object.urls?.map((e) => e) || [];
        return message;
    },
};
function createBaseUserBadgesAttributes() {
    return { badgeSceneType: 0, imageBadges: [], badges: [], privilegeLogExtra: undefined };
}
exports.UserBadgesAttributesDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.badgeSceneType !== 0) {
            writer.uint32(24).int32(message.badgeSceneType);
        }
        for (const v of message.imageBadges) {
            exports.UserImageBadgeDecoder.encode(v, writer.uint32(162).fork()).join();
        }
        for (const v of message.badges) {
            exports.UserBadgeDecoder.encode(v, writer.uint32(170).fork()).join();
        }
        if (message.privilegeLogExtra !== undefined) {
            exports.PrivilegeLogExtraDecoder.encode(message.privilegeLogExtra, writer.uint32(98).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserBadgesAttributes();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.badgeSceneType = reader.int32();
                    continue;
                }
                case 20: {
                    if (tag !== 162) {
                        break;
                    }
                    message.imageBadges.push(exports.UserImageBadgeDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 21: {
                    if (tag !== 170) {
                        break;
                    }
                    message.badges.push(exports.UserBadgeDecoder.decode(reader, reader.uint32()));
                    continue;
                }
                case 12: {
                    if (tag !== 98) {
                        break;
                    }
                    message.privilegeLogExtra = exports.PrivilegeLogExtraDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            badgeSceneType: isSet(object.badgeSceneType) ? globalThis.Number(object.badgeSceneType) : 0,
            imageBadges: globalThis.Array.isArray(object?.imageBadges)
                ? object.imageBadges.map((e) => exports.UserImageBadgeDecoder.fromJSON(e))
                : [],
            badges: globalThis.Array.isArray(object?.badges) ? object.badges.map((e) => exports.UserBadgeDecoder.fromJSON(e)) : [],
            privilegeLogExtra: isSet(object.privilegeLogExtra)
                ? exports.PrivilegeLogExtraDecoder.fromJSON(object.privilegeLogExtra)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.badgeSceneType !== 0) {
            obj.badgeSceneType = Math.round(message.badgeSceneType);
        }
        if (message.imageBadges?.length) {
            obj.imageBadges = message.imageBadges.map((e) => exports.UserImageBadgeDecoder.toJSON(e));
        }
        if (message.badges?.length) {
            obj.badges = message.badges.map((e) => exports.UserBadgeDecoder.toJSON(e));
        }
        if (message.privilegeLogExtra !== undefined) {
            obj.privilegeLogExtra = exports.PrivilegeLogExtraDecoder.toJSON(message.privilegeLogExtra);
        }
        return obj;
    },
    create(base) {
        return exports.UserBadgesAttributesDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseUserBadgesAttributes();
        message.badgeSceneType = object.badgeSceneType ?? 0;
        message.imageBadges = object.imageBadges?.map((e) => exports.UserImageBadgeDecoder.fromPartial(e)) || [];
        message.badges = object.badges?.map((e) => exports.UserBadgeDecoder.fromPartial(e)) || [];
        message.privilegeLogExtra = (object.privilegeLogExtra !== undefined && object.privilegeLogExtra !== null)
            ? exports.PrivilegeLogExtraDecoder.fromPartial(object.privilegeLogExtra)
            : undefined;
        return message;
    },
};
function createBasePrivilegeLogExtra() {
    return { privilegeId: "", level: "" };
}
exports.PrivilegeLogExtraDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.privilegeId !== "") {
            writer.uint32(18).string(message.privilegeId);
        }
        if (message.level !== "") {
            writer.uint32(42).string(message.level);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePrivilegeLogExtra();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.privilegeId = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.level = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            privilegeId: isSet(object.privilegeId) ? globalThis.String(object.privilegeId) : "",
            level: isSet(object.level) ? globalThis.String(object.level) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.privilegeId !== "") {
            obj.privilegeId = message.privilegeId;
        }
        if (message.level !== "") {
            obj.level = message.level;
        }
        return obj;
    },
    create(base) {
        return exports.PrivilegeLogExtraDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBasePrivilegeLogExtra();
        message.privilegeId = object.privilegeId ?? "";
        message.level = object.level ?? "";
        return message;
    },
};
function createBaseUserBadge() {
    return { type: "", name: "" };
}
exports.UserBadgeDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.type !== "") {
            writer.uint32(18).string(message.type);
        }
        if (message.name !== "") {
            writer.uint32(26).string(message.name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserBadge();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.type = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            type: isSet(object.type) ? globalThis.String(object.type) : "",
            name: isSet(object.name) ? globalThis.String(object.name) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== "") {
            obj.type = message.type;
        }
        if (message.name !== "") {
            obj.name = message.name;
        }
        return obj;
    },
    create(base) {
        return exports.UserBadgeDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseUserBadge();
        message.type = object.type ?? "";
        message.name = object.name ?? "";
        return message;
    },
};
function createBaseUserImageBadge() {
    return { displayType: 0, image: undefined };
}
exports.UserImageBadgeDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.displayType !== 0) {
            writer.uint32(8).int32(message.displayType);
        }
        if (message.image !== undefined) {
            exports.UserImageBadgeImageDecoder.encode(message.image, writer.uint32(18).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserImageBadge();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.displayType = reader.int32();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.image = exports.UserImageBadgeImageDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            displayType: isSet(object.displayType) ? globalThis.Number(object.displayType) : 0,
            image: isSet(object.image) ? exports.UserImageBadgeImageDecoder.fromJSON(object.image) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.displayType !== 0) {
            obj.displayType = Math.round(message.displayType);
        }
        if (message.image !== undefined) {
            obj.image = exports.UserImageBadgeImageDecoder.toJSON(message.image);
        }
        return obj;
    },
    create(base) {
        return exports.UserImageBadgeDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseUserImageBadge();
        message.displayType = object.displayType ?? 0;
        message.image = (object.image !== undefined && object.image !== null)
            ? exports.UserImageBadgeImageDecoder.fromPartial(object.image)
            : undefined;
        return message;
    },
};
function createBaseUserImageBadgeImage() {
    return { url: "" };
}
exports.UserImageBadgeImageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.url !== "") {
            writer.uint32(10).string(message.url);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserImageBadgeImage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.url = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { url: isSet(object.url) ? globalThis.String(object.url) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.url !== "") {
            obj.url = message.url;
        }
        return obj;
    },
    create(base) {
        return exports.UserImageBadgeImageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseUserImageBadgeImage();
        message.url = object.url ?? "";
        return message;
    },
};
function createBaseWebcastWebsocketMessage() {
    return { id: "0", type: "", binary: new Uint8Array(0) };
}
exports.WebcastWebsocketMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.id !== "0") {
            writer.uint32(16).uint64(message.id);
        }
        if (message.type !== "") {
            writer.uint32(58).string(message.type);
        }
        if (message.binary.length !== 0) {
            writer.uint32(66).bytes(message.binary);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastWebsocketMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.id = reader.uint64().toString();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.type = reader.string();
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.binary = reader.bytes();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? globalThis.String(object.id) : "0",
            type: isSet(object.type) ? globalThis.String(object.type) : "",
            binary: isSet(object.binary) ? bytesFromBase64(object.binary) : new Uint8Array(0),
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.id !== "0") {
            obj.id = message.id;
        }
        if (message.type !== "") {
            obj.type = message.type;
        }
        if (message.binary.length !== 0) {
            obj.binary = base64FromBytes(message.binary);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastWebsocketMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastWebsocketMessage();
        message.id = object.id ?? "0";
        message.type = object.type ?? "";
        message.binary = object.binary ?? new Uint8Array(0);
        return message;
    },
};
function createBaseWebcastWebsocketAck() {
    return { id: "0", type: "" };
}
exports.WebcastWebsocketAckDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.id !== "0") {
            writer.uint32(16).uint64(message.id);
        }
        if (message.type !== "") {
            writer.uint32(58).string(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastWebsocketAck();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.id = reader.uint64().toString();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.type = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? globalThis.String(object.id) : "0",
            type: isSet(object.type) ? globalThis.String(object.type) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.id !== "0") {
            obj.id = message.id;
        }
        if (message.type !== "") {
            obj.type = message.type;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastWebsocketAckDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastWebsocketAck();
        message.id = object.id ?? "0";
        message.type = object.type ?? "";
        return message;
    },
};
function createBaseWebcastBarrageMessage() {
    return { event: undefined, msgType: 0, content: undefined };
}
exports.WebcastBarrageMessageDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.event !== undefined) {
            exports.WebcastMessageEventDecoder.encode(message.event, writer.uint32(10).fork()).join();
        }
        if (message.msgType !== 0) {
            writer.uint32(24).int32(message.msgType);
        }
        if (message.content !== undefined) {
            exports.WebcastBarrageMessage_TextDecoder.encode(message.content, writer.uint32(42).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastBarrageMessage();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.event = exports.WebcastMessageEventDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.msgType = reader.int32();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.content = exports.WebcastBarrageMessage_TextDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            event: isSet(object.event) ? exports.WebcastMessageEventDecoder.fromJSON(object.event) : undefined,
            msgType: isSet(object.msgType) ? globalThis.Number(object.msgType) : 0,
            content: isSet(object.content) ? exports.WebcastBarrageMessage_TextDecoder.fromJSON(object.content) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.event !== undefined) {
            obj.event = exports.WebcastMessageEventDecoder.toJSON(message.event);
        }
        if (message.msgType !== 0) {
            obj.msgType = Math.round(message.msgType);
        }
        if (message.content !== undefined) {
            obj.content = exports.WebcastBarrageMessage_TextDecoder.toJSON(message.content);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastBarrageMessageDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastBarrageMessage();
        message.event = (object.event !== undefined && object.event !== null)
            ? exports.WebcastMessageEventDecoder.fromPartial(object.event)
            : undefined;
        message.msgType = object.msgType ?? 0;
        message.content = (object.content !== undefined && object.content !== null)
            ? exports.WebcastBarrageMessage_TextDecoder.fromPartial(object.content)
            : undefined;
        return message;
    },
};
function createBaseWebcastBarrageMessage_Text() {
    return { key: "", defaultPattern: "", pieces: [] };
}
exports.WebcastBarrageMessage_TextDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.key !== "") {
            writer.uint32(10).string(message.key);
        }
        if (message.defaultPattern !== "") {
            writer.uint32(18).string(message.defaultPattern);
        }
        for (const v of message.pieces) {
            exports.WebcastBarrageMessage_TextPieceDecoder.encode(v, writer.uint32(34).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastBarrageMessage_Text();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.key = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.defaultPattern = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.pieces.push(exports.WebcastBarrageMessage_TextPieceDecoder.decode(reader, reader.uint32()));
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            key: isSet(object.key) ? globalThis.String(object.key) : "",
            defaultPattern: isSet(object.defaultPattern) ? globalThis.String(object.defaultPattern) : "",
            pieces: globalThis.Array.isArray(object?.pieces)
                ? object.pieces.map((e) => exports.WebcastBarrageMessage_TextPieceDecoder.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.key !== "") {
            obj.key = message.key;
        }
        if (message.defaultPattern !== "") {
            obj.defaultPattern = message.defaultPattern;
        }
        if (message.pieces?.length) {
            obj.pieces = message.pieces.map((e) => exports.WebcastBarrageMessage_TextPieceDecoder.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return exports.WebcastBarrageMessage_TextDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastBarrageMessage_Text();
        message.key = object.key ?? "";
        message.defaultPattern = object.defaultPattern ?? "";
        message.pieces = object.pieces?.map((e) => exports.WebcastBarrageMessage_TextPieceDecoder.fromPartial(e)) || [];
        return message;
    },
};
function createBaseWebcastBarrageMessage_TextPiece() {
    return { type: 0, stringValue: "", userValue: undefined };
}
exports.WebcastBarrageMessage_TextPieceDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        if (message.stringValue !== "") {
            writer.uint32(90).string(message.stringValue);
        }
        if (message.userValue !== undefined) {
            exports.WebcastBarrageMessage_TextPieceUserDecoder.encode(message.userValue, writer.uint32(170).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastBarrageMessage_TextPiece();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
                }
                case 11: {
                    if (tag !== 90) {
                        break;
                    }
                    message.stringValue = reader.string();
                    continue;
                }
                case 21: {
                    if (tag !== 170) {
                        break;
                    }
                    message.userValue = exports.WebcastBarrageMessage_TextPieceUserDecoder.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            type: isSet(object.type) ? globalThis.Number(object.type) : 0,
            stringValue: isSet(object.stringValue) ? globalThis.String(object.stringValue) : "",
            userValue: isSet(object.userValue)
                ? exports.WebcastBarrageMessage_TextPieceUserDecoder.fromJSON(object.userValue)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== 0) {
            obj.type = Math.round(message.type);
        }
        if (message.stringValue !== "") {
            obj.stringValue = message.stringValue;
        }
        if (message.userValue !== undefined) {
            obj.userValue = exports.WebcastBarrageMessage_TextPieceUserDecoder.toJSON(message.userValue);
        }
        return obj;
    },
    create(base) {
        return exports.WebcastBarrageMessage_TextPieceDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastBarrageMessage_TextPiece();
        message.type = object.type ?? 0;
        message.stringValue = object.stringValue ?? "";
        message.userValue = (object.userValue !== undefined && object.userValue !== null)
            ? exports.WebcastBarrageMessage_TextPieceUserDecoder.fromPartial(object.userValue)
            : undefined;
        return message;
    },
};
function createBaseWebcastBarrageMessage_TextPieceUser() {
    return { user: undefined, withColon: false };
}
exports.WebcastBarrageMessage_TextPieceUserDecoder = {
    encode(message, writer = new wire_1.BinaryWriter()) {
        if (message.user !== undefined) {
            exports.UserDecoder.encode(message.user, writer.uint32(10).fork()).join();
        }
        if (message.withColon !== false) {
            writer.uint32(16).bool(message.withColon);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebcastBarrageMessage_TextPieceUser();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.user = exports.UserDecoder.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.withColon = reader.bool();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            user: isSet(object.user) ? exports.UserDecoder.fromJSON(object.user) : undefined,
            withColon: isSet(object.withColon) ? globalThis.Boolean(object.withColon) : false,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.user !== undefined) {
            obj.user = exports.UserDecoder.toJSON(message.user);
        }
        if (message.withColon !== false) {
            obj.withColon = message.withColon;
        }
        return obj;
    },
    create(base) {
        return exports.WebcastBarrageMessage_TextPieceUserDecoder.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseWebcastBarrageMessage_TextPieceUser();
        message.user = (object.user !== undefined && object.user !== null) ? exports.UserDecoder.fromPartial(object.user) : undefined;
        message.withColon = object.withColon ?? false;
        return message;
    },
};
function bytesFromBase64(b64) {
    const bin = globalThis.atob(b64);
    const arr = new Uint8Array(bin.length);
    for (let i = 0; i < bin.length; ++i) {
        arr[i] = bin.charCodeAt(i);
    }
    return arr;
}
function base64FromBytes(arr) {
    const bin = [];
    arr.forEach((byte) => {
        bin.push(globalThis.String.fromCharCode(byte));
    });
    return globalThis.btoa(bin.join(""));
}
function isSet(value) {
    return value !== null && value !== undefined;
}
//# sourceMappingURL=tiktok-schema-v1.js.map