public unsafe PublishEvent(string p0, global::Com.Liveperson.Api.Request.PublishEvent.Type p1, string p2, int[] p3, global::Com.Liveperson.Api.Response.Model.DeliveryStatusUpdateInfo p4)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
            {
                return;
            }

            IntPtr native_p0 = JNIEnv.NewString(p0);
            IntPtr native_p2 = JNIEnv.NewString(p2);
            IntPtr native_p3 = JNIEnv.NewArray(p3);

            try {
                JValue *__args = stackalloc JValue [5];
                __args [0] = new JValue(native_p0);
                __args [1] = new JValue(p1);
                __args [2] = new JValue(native_p2);
                __args [3] = new JValue(native_p3);
                __args [4] = new JValue(p4);
                if (((object)this).GetType() != typeof(PublishEvent))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(((object)this).GetType(), "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Ljava/lang/String;[ILcom/liveperson/api/response/model/DeliveryStatusUpdateInfo;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Ljava/lang/String;[ILcom/liveperson/api/response/model/DeliveryStatusUpdateInfo;)V", __args);
                    return;
                }

                if (id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Ljava_lang_String_arrayILcom_liveperson_api_response_model_DeliveryStatusUpdateInfo_ == IntPtr.Zero)
                {
                    id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Ljava_lang_String_arrayILcom_liveperson_api_response_model_DeliveryStatusUpdateInfo_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Ljava/lang/String;[ILcom/liveperson/api/response/model/DeliveryStatusUpdateInfo;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Ljava_lang_String_arrayILcom_liveperson_api_response_model_DeliveryStatusUpdateInfo_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, class_ref, id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Ljava_lang_String_arrayILcom_liveperson_api_response_model_DeliveryStatusUpdateInfo_, __args);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
                JNIEnv.DeleteLocalRef(native_p2);
                if (p3 != null)
                {
                    JNIEnv.CopyArray(native_p3, p3);
                    JNIEnv.DeleteLocalRef(native_p3);
                }
            }
        }
            public static unsafe global::Com.Liveperson.Api.Request.PublishEvent.Type ValueOf(string p0)
            {
                if (id_valueOf_Ljava_lang_String_ == IntPtr.Zero)
                {
                    id_valueOf_Ljava_lang_String_ = JNIEnv.GetStaticMethodID(class_ref, "valueOf", "(Ljava/lang/String;)Lcom/liveperson/api/request/PublishEvent$Type;");
                }
                IntPtr native_p0 = JNIEnv.NewString(p0);

                try {
                    JValue *__args = stackalloc JValue [1];
                    __args [0] = new JValue(native_p0);
                    global::Com.Liveperson.Api.Request.PublishEvent.Type __ret = global::Java.Lang.Object.GetObject <global::Com.Liveperson.Api.Request.PublishEvent.Type> (JNIEnv.CallStaticObjectMethod(class_ref, id_valueOf_Ljava_lang_String_, __args), JniHandleOwnership.TransferLocalRef);
                    return(__ret);
                } finally {
                    JNIEnv.DeleteLocalRef(native_p0);
                }
            }
        public unsafe PublishEvent(string p0, global::Com.Liveperson.Api.Request.PublishEvent.Type p1, global::Com.Liveperson.Infra.Model.Types.ChatState p2)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
            {
                return;
            }

            IntPtr native_p0 = JNIEnv.NewString(p0);

            try {
                JValue *__args = stackalloc JValue [3];
                __args [0] = new JValue(native_p0);
                __args [1] = new JValue(p1);
                __args [2] = new JValue(p2);
                if (((object)this).GetType() != typeof(PublishEvent))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(((object)this).GetType(), "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Lcom/liveperson/infra/model/types/ChatState;)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Lcom/liveperson/infra/model/types/ChatState;)V", __args);
                    return;
                }

                if (id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Lcom_liveperson_infra_model_types_ChatState_ == IntPtr.Zero)
                {
                    id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Lcom_liveperson_infra_model_types_ChatState_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Ljava/lang/String;Lcom/liveperson/api/request/PublishEvent$Type;Lcom/liveperson/infra/model/types/ChatState;)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Lcom_liveperson_infra_model_types_ChatState_, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(((global::Java.Lang.Object) this).Handle, class_ref, id_ctor_Ljava_lang_String_Lcom_liveperson_api_request_PublishEvent_Type_Lcom_liveperson_infra_model_types_ChatState_, __args);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
            }
        }