static bool n_IsSupported_Lcom_google_ar_core_Config_(IntPtr jnienv, IntPtr native__this, IntPtr native_config)
        {
            global::Google.AR.Core.Session __this = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Session> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Google.AR.Core.Config  config = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config> (native_config, JniHandleOwnership.DoNotTransfer);
            bool __ret = __this.IsSupported(config);

            return(__ret);
        }
        public virtual unsafe void Configure(global::Google.AR.Core.Config config)
        {
            if (id_configure_Lcom_google_ar_core_Config_ == IntPtr.Zero)
            {
                id_configure_Lcom_google_ar_core_Config_ = JNIEnv.GetMethodID(class_ref, "configure", "(Lcom/google/ar/core/Config;)V");
            }
            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(config);

                if (((object)this).GetType() == ThresholdType)
                {
                    JNIEnv.CallVoidMethod(((global::Java.Lang.Object) this).Handle, id_configure_Lcom_google_ar_core_Config_, __args);
                }
                else
                {
                    JNIEnv.CallNonvirtualVoidMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "configure", "(Lcom/google/ar/core/Config;)V"), __args);
                }
            } finally {
            }
        }
        public virtual unsafe bool IsSupported(global::Google.AR.Core.Config config)
        {
            if (id_isSupported_Lcom_google_ar_core_Config_ == IntPtr.Zero)
            {
                id_isSupported_Lcom_google_ar_core_Config_ = JNIEnv.GetMethodID(class_ref, "isSupported", "(Lcom/google/ar/core/Config;)Z");
            }
            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(config);

                bool __ret;
                if (((object)this).GetType() == ThresholdType)
                {
                    __ret = JNIEnv.CallBooleanMethod(((global::Java.Lang.Object) this).Handle, id_isSupported_Lcom_google_ar_core_Config_, __args);
                }
                else
                {
                    __ret = JNIEnv.CallNonvirtualBooleanMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "isSupported", "(Lcom/google/ar/core/Config;)Z"), __args);
                }
                return(__ret);
            } finally {
            }
        }
 static void n_SetUpdateMode_Lcom_google_ar_core_Config_UpdateMode_(IntPtr jnienv, IntPtr native__this, IntPtr native_updateMode)
 {
     global::Google.AR.Core.Config            __this     = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Google.AR.Core.Config.UpdateMode updateMode = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config.UpdateMode> (native_updateMode, JniHandleOwnership.DoNotTransfer);
     __this.SetUpdateMode(updateMode);
 }
 static void n_SetLightEstimationMode_Lcom_google_ar_core_Config_LightEstimationMode_(IntPtr jnienv, IntPtr native__this, IntPtr native_lightEstimationMode)
 {
     global::Google.AR.Core.Config __this = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Google.AR.Core.Config.LightEstimationMode lightEstimationMode = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config.LightEstimationMode> (native_lightEstimationMode, JniHandleOwnership.DoNotTransfer);
     __this.SetLightEstimationMode(lightEstimationMode);
 }
 static IntPtr n_GetUpdateMode(IntPtr jnienv, IntPtr native__this)
 {
     global::Google.AR.Core.Config __this = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     return(JNIEnv.ToLocalJniHandle(__this.GetUpdateMode()));
 }
 static void n_Configure_Lcom_google_ar_core_Config_(IntPtr jnienv, IntPtr native__this, IntPtr native_config)
 {
     global::Google.AR.Core.Session __this = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Session> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Google.AR.Core.Config  config = global::Java.Lang.Object.GetObject <global::Google.AR.Core.Config> (native_config, JniHandleOwnership.DoNotTransfer);
     __this.Configure(config);
 }