// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "notifAction.proto" (package "api", syntax proto3)
// tslint:disable
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import { WireType } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { reflectionMergePartial } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { EntityID } from "./shared";
import { CommandHeader } from "./shared";
import { NotifTypeEnum } from "./collabShared";
// Action Summary
//   - NotifyByMail :  Send Notif by mail
//   - NotifyChatRoom :  Send Notif to chat room

/**
 *
 * NotifyByMail
 *
 * @generated from protobuf message api.NotifNotifyByMailPayload
 */
export interface NotifNotifyByMailPayload {
    /**
     * @generated from protobuf field: api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"];
     */
    notificationType: NotifTypeEnum;
    /**
     * @generated from protobuf field: string IssuerID = 2 [json_name = "IssuerID"];
     */
    issuerID: string;
    /**
     * @generated from protobuf field: repeated string Contacts = 3 [json_name = "Contacts"];
     */
    contacts: string[];
    /**
     * @generated from protobuf field: string Details = 4 [json_name = "Details"];
     */
    details: string;
    /**
     * @generated from protobuf field: string EntityDomain = 5 [json_name = "EntityDomain"];
     */
    entityDomain: string;
    /**
     * @generated from protobuf field: string EntityType = 6 [json_name = "EntityType"];
     */
    entityType: string;
    /**
     * @generated from protobuf field: string EntityRefID = 7 [json_name = "EntityRefID"];
     */
    entityRefID: string;
    /**
     * @generated from protobuf field: string Tags = 8 [json_name = "Tags"];
     */
    tags: string;
}
/**
 * @generated from protobuf message api.NotifNotifyByMail
 */
export interface NotifNotifyByMail {
    /**
     * @generated from protobuf field: api.CommandHeader Header = 1 [json_name = "Header"];
     */
    header?: CommandHeader;
    /**
     * @generated from protobuf field: api.EntityID ID = 2 [json_name = "ID"];
     */
    iD?: EntityID;
    /**
     * @generated from protobuf field: api.NotifNotifyByMailPayload Payload = 3 [json_name = "Payload"];
     */
    payload?: NotifNotifyByMailPayload;
    /**
     * @generated from protobuf field: api.NotifNotifyByMailPayload EventPayload = 4 [json_name = "EventPayload"];
     */
    eventPayload?: NotifNotifyByMailPayload;
    /**
     * @generated from protobuf field: api.NotifNotifyByMailPayload PreviousPayload = 5 [json_name = "PreviousPayload"];
     */
    previousPayload?: NotifNotifyByMailPayload;
}
/**
 *
 * NotifyChatRoom
 *
 * @generated from protobuf message api.NotifNotifyChatRoomPayload
 */
export interface NotifNotifyChatRoomPayload {
    /**
     * @generated from protobuf field: api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"];
     */
    notificationType: NotifTypeEnum;
    /**
     * @generated from protobuf field: string IssuerID = 2 [json_name = "IssuerID"];
     */
    issuerID: string;
    /**
     * @generated from protobuf field: repeated string Contacts = 3 [json_name = "Contacts"];
     */
    contacts: string[];
    /**
     * @generated from protobuf field: string Details = 4 [json_name = "Details"];
     */
    details: string;
    /**
     * @generated from protobuf field: string EntityDomain = 5 [json_name = "EntityDomain"];
     */
    entityDomain: string;
    /**
     * @generated from protobuf field: string EntityType = 6 [json_name = "EntityType"];
     */
    entityType: string;
    /**
     * @generated from protobuf field: string EntityRefID = 7 [json_name = "EntityRefID"];
     */
    entityRefID: string;
    /**
     * @generated from protobuf field: string Tags = 8 [json_name = "Tags"];
     */
    tags: string;
}
/**
 * @generated from protobuf message api.NotifNotifyChatRoom
 */
export interface NotifNotifyChatRoom {
    /**
     * @generated from protobuf field: api.CommandHeader Header = 1 [json_name = "Header"];
     */
    header?: CommandHeader;
    /**
     * @generated from protobuf field: api.EntityID ID = 2 [json_name = "ID"];
     */
    iD?: EntityID;
    /**
     * @generated from protobuf field: api.NotifNotifyChatRoomPayload Payload = 3 [json_name = "Payload"];
     */
    payload?: NotifNotifyChatRoomPayload;
    /**
     * @generated from protobuf field: api.NotifNotifyChatRoomPayload EventPayload = 4 [json_name = "EventPayload"];
     */
    eventPayload?: NotifNotifyChatRoomPayload;
    /**
     * @generated from protobuf field: api.NotifNotifyChatRoomPayload PreviousPayload = 5 [json_name = "PreviousPayload"];
     */
    previousPayload?: NotifNotifyChatRoomPayload;
}
// @generated message type with reflection information, may provide speed optimized methods
class NotifNotifyByMailPayload$Type extends MessageType<NotifNotifyByMailPayload> {
    constructor() {
        super("api.NotifNotifyByMailPayload", [
            { no: 1, name: "NotificationType", kind: "enum", jsonName: "NotificationType", T: () => ["api.NotifTypeEnum", NotifTypeEnum] },
            { no: 2, name: "IssuerID", kind: "scalar", jsonName: "IssuerID", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Contacts", kind: "scalar", jsonName: "Contacts", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Details", kind: "scalar", jsonName: "Details", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "EntityDomain", kind: "scalar", jsonName: "EntityDomain", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "EntityType", kind: "scalar", jsonName: "EntityType", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "EntityRefID", kind: "scalar", jsonName: "EntityRefID", T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "Tags", kind: "scalar", jsonName: "Tags", T: 9 /*ScalarType.STRING*/ }
        ], { "api.messageType": "Command", "api.payload": true, "api.action": "NotifyByMail" });
    }
    create(value?: PartialMessage<NotifNotifyByMailPayload>): NotifNotifyByMailPayload {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.notificationType = 0;
        message.issuerID = "";
        message.contacts = [];
        message.details = "";
        message.entityDomain = "";
        message.entityType = "";
        message.entityRefID = "";
        message.tags = "";
        if (value !== undefined)
            reflectionMergePartial<NotifNotifyByMailPayload>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotifNotifyByMailPayload): NotifNotifyByMailPayload {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"];*/ 1:
                    message.notificationType = reader.int32();
                    break;
                case /* string IssuerID = 2 [json_name = "IssuerID"];*/ 2:
                    message.issuerID = reader.string();
                    break;
                case /* repeated string Contacts = 3 [json_name = "Contacts"];*/ 3:
                    message.contacts.push(reader.string());
                    break;
                case /* string Details = 4 [json_name = "Details"];*/ 4:
                    message.details = reader.string();
                    break;
                case /* string EntityDomain = 5 [json_name = "EntityDomain"];*/ 5:
                    message.entityDomain = reader.string();
                    break;
                case /* string EntityType = 6 [json_name = "EntityType"];*/ 6:
                    message.entityType = reader.string();
                    break;
                case /* string EntityRefID = 7 [json_name = "EntityRefID"];*/ 7:
                    message.entityRefID = reader.string();
                    break;
                case /* string Tags = 8 [json_name = "Tags"];*/ 8:
                    message.tags = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: NotifNotifyByMailPayload, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"]; */
        if (message.notificationType !== 0)
            writer.tag(1, WireType.Varint).int32(message.notificationType);
        /* string IssuerID = 2 [json_name = "IssuerID"]; */
        if (message.issuerID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.issuerID);
        /* repeated string Contacts = 3 [json_name = "Contacts"]; */
        for (let i = 0; i < message.contacts.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.contacts[i]);
        /* string Details = 4 [json_name = "Details"]; */
        if (message.details !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.details);
        /* string EntityDomain = 5 [json_name = "EntityDomain"]; */
        if (message.entityDomain !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.entityDomain);
        /* string EntityType = 6 [json_name = "EntityType"]; */
        if (message.entityType !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.entityType);
        /* string EntityRefID = 7 [json_name = "EntityRefID"]; */
        if (message.entityRefID !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.entityRefID);
        /* string Tags = 8 [json_name = "Tags"]; */
        if (message.tags !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.tags);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.NotifNotifyByMailPayload
 */
export const NotifNotifyByMailPayload = new NotifNotifyByMailPayload$Type();
// @generated message type with reflection information, may provide speed optimized methods
class NotifNotifyByMail$Type extends MessageType<NotifNotifyByMail> {
    constructor() {
        super("api.NotifNotifyByMail", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => CommandHeader },
            { no: 2, name: "ID", kind: "message", jsonName: "ID", T: () => EntityID },
            { no: 3, name: "Payload", kind: "message", jsonName: "Payload", T: () => NotifNotifyByMailPayload },
            { no: 4, name: "EventPayload", kind: "message", jsonName: "EventPayload", T: () => NotifNotifyByMailPayload },
            { no: 5, name: "PreviousPayload", kind: "message", jsonName: "PreviousPayload", T: () => NotifNotifyByMailPayload }
        ], { "api.messageType": "Command", "api.action": "NotifyByMail", "api.windowMethod": "TumblingProcessingTimeWindows", "api.keyByExpression": "obj.getHeader().getProject()+'-'+obj.getPayload().getEntityType()+'-'+obj.getPayload().getEntityRefID()" });
    }
    create(value?: PartialMessage<NotifNotifyByMail>): NotifNotifyByMail {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<NotifNotifyByMail>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotifNotifyByMail): NotifNotifyByMail {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.CommandHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = CommandHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.EntityID ID = 2 [json_name = "ID"];*/ 2:
                    message.iD = EntityID.internalBinaryRead(reader, reader.uint32(), options, message.iD);
                    break;
                case /* api.NotifNotifyByMailPayload Payload = 3 [json_name = "Payload"];*/ 3:
                    message.payload = NotifNotifyByMailPayload.internalBinaryRead(reader, reader.uint32(), options, message.payload);
                    break;
                case /* api.NotifNotifyByMailPayload EventPayload = 4 [json_name = "EventPayload"];*/ 4:
                    message.eventPayload = NotifNotifyByMailPayload.internalBinaryRead(reader, reader.uint32(), options, message.eventPayload);
                    break;
                case /* api.NotifNotifyByMailPayload PreviousPayload = 5 [json_name = "PreviousPayload"];*/ 5:
                    message.previousPayload = NotifNotifyByMailPayload.internalBinaryRead(reader, reader.uint32(), options, message.previousPayload);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: NotifNotifyByMail, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.CommandHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            CommandHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.EntityID ID = 2 [json_name = "ID"]; */
        if (message.iD)
            EntityID.internalBinaryWrite(message.iD, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyByMailPayload Payload = 3 [json_name = "Payload"]; */
        if (message.payload)
            NotifNotifyByMailPayload.internalBinaryWrite(message.payload, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyByMailPayload EventPayload = 4 [json_name = "EventPayload"]; */
        if (message.eventPayload)
            NotifNotifyByMailPayload.internalBinaryWrite(message.eventPayload, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyByMailPayload PreviousPayload = 5 [json_name = "PreviousPayload"]; */
        if (message.previousPayload)
            NotifNotifyByMailPayload.internalBinaryWrite(message.previousPayload, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.NotifNotifyByMail
 */
export const NotifNotifyByMail = new NotifNotifyByMail$Type();
// @generated message type with reflection information, may provide speed optimized methods
class NotifNotifyChatRoomPayload$Type extends MessageType<NotifNotifyChatRoomPayload> {
    constructor() {
        super("api.NotifNotifyChatRoomPayload", [
            { no: 1, name: "NotificationType", kind: "enum", jsonName: "NotificationType", T: () => ["api.NotifTypeEnum", NotifTypeEnum] },
            { no: 2, name: "IssuerID", kind: "scalar", jsonName: "IssuerID", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Contacts", kind: "scalar", jsonName: "Contacts", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Details", kind: "scalar", jsonName: "Details", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "EntityDomain", kind: "scalar", jsonName: "EntityDomain", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "EntityType", kind: "scalar", jsonName: "EntityType", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "EntityRefID", kind: "scalar", jsonName: "EntityRefID", T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "Tags", kind: "scalar", jsonName: "Tags", T: 9 /*ScalarType.STRING*/ }
        ], { "api.messageType": "Command", "api.payload": true, "api.action": "NotifyChatRoom" });
    }
    create(value?: PartialMessage<NotifNotifyChatRoomPayload>): NotifNotifyChatRoomPayload {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.notificationType = 0;
        message.issuerID = "";
        message.contacts = [];
        message.details = "";
        message.entityDomain = "";
        message.entityType = "";
        message.entityRefID = "";
        message.tags = "";
        if (value !== undefined)
            reflectionMergePartial<NotifNotifyChatRoomPayload>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotifNotifyChatRoomPayload): NotifNotifyChatRoomPayload {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"];*/ 1:
                    message.notificationType = reader.int32();
                    break;
                case /* string IssuerID = 2 [json_name = "IssuerID"];*/ 2:
                    message.issuerID = reader.string();
                    break;
                case /* repeated string Contacts = 3 [json_name = "Contacts"];*/ 3:
                    message.contacts.push(reader.string());
                    break;
                case /* string Details = 4 [json_name = "Details"];*/ 4:
                    message.details = reader.string();
                    break;
                case /* string EntityDomain = 5 [json_name = "EntityDomain"];*/ 5:
                    message.entityDomain = reader.string();
                    break;
                case /* string EntityType = 6 [json_name = "EntityType"];*/ 6:
                    message.entityType = reader.string();
                    break;
                case /* string EntityRefID = 7 [json_name = "EntityRefID"];*/ 7:
                    message.entityRefID = reader.string();
                    break;
                case /* string Tags = 8 [json_name = "Tags"];*/ 8:
                    message.tags = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: NotifNotifyChatRoomPayload, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.NotifTypeEnum NotificationType = 1 [json_name = "NotificationType"]; */
        if (message.notificationType !== 0)
            writer.tag(1, WireType.Varint).int32(message.notificationType);
        /* string IssuerID = 2 [json_name = "IssuerID"]; */
        if (message.issuerID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.issuerID);
        /* repeated string Contacts = 3 [json_name = "Contacts"]; */
        for (let i = 0; i < message.contacts.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.contacts[i]);
        /* string Details = 4 [json_name = "Details"]; */
        if (message.details !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.details);
        /* string EntityDomain = 5 [json_name = "EntityDomain"]; */
        if (message.entityDomain !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.entityDomain);
        /* string EntityType = 6 [json_name = "EntityType"]; */
        if (message.entityType !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.entityType);
        /* string EntityRefID = 7 [json_name = "EntityRefID"]; */
        if (message.entityRefID !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.entityRefID);
        /* string Tags = 8 [json_name = "Tags"]; */
        if (message.tags !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.tags);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.NotifNotifyChatRoomPayload
 */
export const NotifNotifyChatRoomPayload = new NotifNotifyChatRoomPayload$Type();
// @generated message type with reflection information, may provide speed optimized methods
class NotifNotifyChatRoom$Type extends MessageType<NotifNotifyChatRoom> {
    constructor() {
        super("api.NotifNotifyChatRoom", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => CommandHeader },
            { no: 2, name: "ID", kind: "message", jsonName: "ID", T: () => EntityID },
            { no: 3, name: "Payload", kind: "message", jsonName: "Payload", T: () => NotifNotifyChatRoomPayload },
            { no: 4, name: "EventPayload", kind: "message", jsonName: "EventPayload", T: () => NotifNotifyChatRoomPayload },
            { no: 5, name: "PreviousPayload", kind: "message", jsonName: "PreviousPayload", T: () => NotifNotifyChatRoomPayload }
        ], { "api.messageType": "Command", "api.action": "NotifyChatRoom" });
    }
    create(value?: PartialMessage<NotifNotifyChatRoom>): NotifNotifyChatRoom {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<NotifNotifyChatRoom>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotifNotifyChatRoom): NotifNotifyChatRoom {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.CommandHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = CommandHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.EntityID ID = 2 [json_name = "ID"];*/ 2:
                    message.iD = EntityID.internalBinaryRead(reader, reader.uint32(), options, message.iD);
                    break;
                case /* api.NotifNotifyChatRoomPayload Payload = 3 [json_name = "Payload"];*/ 3:
                    message.payload = NotifNotifyChatRoomPayload.internalBinaryRead(reader, reader.uint32(), options, message.payload);
                    break;
                case /* api.NotifNotifyChatRoomPayload EventPayload = 4 [json_name = "EventPayload"];*/ 4:
                    message.eventPayload = NotifNotifyChatRoomPayload.internalBinaryRead(reader, reader.uint32(), options, message.eventPayload);
                    break;
                case /* api.NotifNotifyChatRoomPayload PreviousPayload = 5 [json_name = "PreviousPayload"];*/ 5:
                    message.previousPayload = NotifNotifyChatRoomPayload.internalBinaryRead(reader, reader.uint32(), options, message.previousPayload);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: NotifNotifyChatRoom, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.CommandHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            CommandHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.EntityID ID = 2 [json_name = "ID"]; */
        if (message.iD)
            EntityID.internalBinaryWrite(message.iD, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyChatRoomPayload Payload = 3 [json_name = "Payload"]; */
        if (message.payload)
            NotifNotifyChatRoomPayload.internalBinaryWrite(message.payload, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyChatRoomPayload EventPayload = 4 [json_name = "EventPayload"]; */
        if (message.eventPayload)
            NotifNotifyChatRoomPayload.internalBinaryWrite(message.eventPayload, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* api.NotifNotifyChatRoomPayload PreviousPayload = 5 [json_name = "PreviousPayload"]; */
        if (message.previousPayload)
            NotifNotifyChatRoomPayload.internalBinaryWrite(message.previousPayload, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.NotifNotifyChatRoom
 */
export const NotifNotifyChatRoom = new NotifNotifyChatRoom$Type();
