public static unsafe bool TryFociTokenWithGivenClientId(global::Com.Microsoft.Identity.Common.Internal.Providers.Oauth2.OAuth2TokenCache brokerOAuth2TokenCache, string clientId, string redirectUri, global::Com.Microsoft.Identity.Common.Internal.Dto.RefreshTokenRecord refreshTokenRecord, global::Com.Microsoft.Identity.Common.Internal.Dto.IAccountRecord accountRecord)
        {
            const string __id               = "tryFociTokenWithGivenClientId.(Lcom/microsoft/identity/common/internal/providers/oauth2/OAuth2TokenCache;Ljava/lang/String;Ljava/lang/String;Lcom/microsoft/identity/common/internal/dto/RefreshTokenRecord;Lcom/microsoft/identity/common/internal/dto/IAccountRecord;)Z";
            IntPtr       native_clientId    = JNIEnv.NewString(clientId);
            IntPtr       native_redirectUri = JNIEnv.NewString(redirectUri);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [5];
                __args [0] = new JniArgumentValue((brokerOAuth2TokenCache == null) ? IntPtr.Zero : ((global::Java.Lang.Object)brokerOAuth2TokenCache).Handle);
                __args [1] = new JniArgumentValue(native_clientId);
                __args [2] = new JniArgumentValue(native_redirectUri);
                __args [3] = new JniArgumentValue((refreshTokenRecord == null) ? IntPtr.Zero : ((global::Java.Lang.Object)refreshTokenRecord).Handle);
                __args [4] = new JniArgumentValue((accountRecord == null) ? IntPtr.Zero : ((global::Java.Lang.Object)accountRecord).Handle);
                var __rm = _members.StaticMethods.InvokeBooleanMethod(__id, __args);
                return(__rm);
            } finally {
                JNIEnv.DeleteLocalRef(native_clientId);
                JNIEnv.DeleteLocalRef(native_redirectUri);
                global::System.GC.KeepAlive(brokerOAuth2TokenCache);
                global::System.GC.KeepAlive(refreshTokenRecord);
                global::System.GC.KeepAlive(accountRecord);
            }
        }
        public static unsafe global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.DeviceCodeFlowCommandParameters CreateDeviceCodeFlowCommandParameters(global::Com.Microsoft.Identity.Client.PublicClientApplicationConfiguration configuration, global::Com.Microsoft.Identity.Common.Internal.Providers.Oauth2.OAuth2TokenCache tokenCache, string[] scopes)
        {
            const string __id          = "createDeviceCodeFlowCommandParameters.(Lcom/microsoft/identity/client/PublicClientApplicationConfiguration;Lcom/microsoft/identity/common/internal/providers/oauth2/OAuth2TokenCache;[Ljava/lang/String;)Lcom/microsoft/identity/common/internal/commands/parameters/DeviceCodeFlowCommandParameters;";
            IntPtr       native_scopes = JNIEnv.NewArray(scopes);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [3];
                __args [0] = new JniArgumentValue((configuration == null) ? IntPtr.Zero : ((global::Java.Lang.Object)configuration).Handle);
                __args [1] = new JniArgumentValue((tokenCache == null) ? IntPtr.Zero : ((global::Java.Lang.Object)tokenCache).Handle);
                __args [2] = new JniArgumentValue(native_scopes);
                var __rm = _members.StaticMethods.InvokeObjectMethod(__id, __args);
                return(global::Java.Lang.Object.GetObject <global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.DeviceCodeFlowCommandParameters> (__rm.Handle, JniHandleOwnership.TransferLocalRef));
            } finally {
                if (scopes != null)
                {
                    JNIEnv.CopyArray(native_scopes, scopes);
                    JNIEnv.DeleteLocalRef(native_scopes);
                }
                global::System.GC.KeepAlive(configuration);
                global::System.GC.KeepAlive(tokenCache);
                global::System.GC.KeepAlive(scopes);
            }
        }
        public static unsafe global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.CommandParameters CreateCommandParameters(global::Com.Microsoft.Identity.Client.PublicClientApplicationConfiguration configuration, global::Com.Microsoft.Identity.Common.Internal.Providers.Oauth2.OAuth2TokenCache tokenCache)
        {
            const string __id = "createCommandParameters.(Lcom/microsoft/identity/client/PublicClientApplicationConfiguration;Lcom/microsoft/identity/common/internal/providers/oauth2/OAuth2TokenCache;)Lcom/microsoft/identity/common/internal/commands/parameters/CommandParameters;";

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [2];
                __args [0] = new JniArgumentValue((configuration == null) ? IntPtr.Zero : ((global::Java.Lang.Object)configuration).Handle);
                __args [1] = new JniArgumentValue((tokenCache == null) ? IntPtr.Zero : ((global::Java.Lang.Object)tokenCache).Handle);
                var __rm = _members.StaticMethods.InvokeObjectMethod(__id, __args);
                return(global::Java.Lang.Object.GetObject <global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.CommandParameters> (__rm.Handle, JniHandleOwnership.TransferLocalRef));
            } finally {
                global::System.GC.KeepAlive(configuration);
                global::System.GC.KeepAlive(tokenCache);
            }
        }
        public static unsafe global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.GenerateShrCommandParameters CreateGenerateShrCommandParameters(global::Com.Microsoft.Identity.Client.PublicClientApplicationConfiguration clientConfig, global::Com.Microsoft.Identity.Common.Internal.Providers.Oauth2.OAuth2TokenCache oAuth2TokenCache, string homeAccountId, global::Com.Microsoft.Identity.Client.PoPAuthenticationScheme popParameters)
        {
            const string __id = "createGenerateShrCommandParameters.(Lcom/microsoft/identity/client/PublicClientApplicationConfiguration;Lcom/microsoft/identity/common/internal/providers/oauth2/OAuth2TokenCache;Ljava/lang/String;Lcom/microsoft/identity/client/PoPAuthenticationScheme;)Lcom/microsoft/identity/common/internal/commands/parameters/GenerateShrCommandParameters;";
            IntPtr       native_homeAccountId = JNIEnv.NewString(homeAccountId);

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [4];
                __args [0] = new JniArgumentValue((clientConfig == null) ? IntPtr.Zero : ((global::Java.Lang.Object)clientConfig).Handle);
                __args [1] = new JniArgumentValue((oAuth2TokenCache == null) ? IntPtr.Zero : ((global::Java.Lang.Object)oAuth2TokenCache).Handle);
                __args [2] = new JniArgumentValue(native_homeAccountId);
                __args [3] = new JniArgumentValue((popParameters == null) ? IntPtr.Zero : ((global::Java.Lang.Object)popParameters).Handle);
                var __rm = _members.StaticMethods.InvokeObjectMethod(__id, __args);
                return(global::Java.Lang.Object.GetObject <global::Com.Microsoft.Identity.Common.Internal.Commands.Parameters.GenerateShrCommandParameters> (__rm.Handle, JniHandleOwnership.TransferLocalRef));
            } finally {
                JNIEnv.DeleteLocalRef(native_homeAccountId);
                global::System.GC.KeepAlive(clientConfig);
                global::System.GC.KeepAlive(oAuth2TokenCache);
                global::System.GC.KeepAlive(popParameters);
            }
        }