﻿#if UNITY_IOS
namespace Stove.StoveSDK
{
    using System.Runtime.InteropServices;

    public class AuthUIInterface
    {
        [DllImport("__Internal")]
        private static extern void stove_authui_login(string identifier);
        internal static void Login(string identifier)
        {
            stove_authui_login(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_setProviders(string list);
        internal static void SetProviders(string list)
        {
            stove_authui_setProviders(list);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_handleResult(string result, string identifier);
        internal static void HandleResult(string result, string identifier)
        {
            stove_authui_handleResult(result, identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_agree(string identifier);
        internal static void Agree(string identifier)
        {
            stove_authui_agree(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_agreeForRegister(string identifier);
        internal static void AgreeForRegister(string identifier)
        {
            stove_authui_agreeForRegister(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_agreeForRegisterProvider(string className, string identifier);
        internal static void AgreeForRegisterProvider(string className, string identifier)
        {
            stove_authui_agreeForRegisterProvider(className, identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_withdraw(string identifier);
        internal static void Withdraw(string identifier)
        {
            stove_authui_withdraw(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_link(string identifier);
        internal static void Link(string identifier)
        {
            stove_authui_link(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_manageAccount(string identifier);
        internal static void ManageAccount(string identifier)
        {
            stove_authui_manageAccount(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_manageDevices(string identifier);
        internal static void ManageDevices(string identifier)
        {
            stove_authui_manageDevices(identifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_verifyIdentification(string identifier, bool compareIdentifier);
        internal static void VerifyIdentification(string identifier, bool compareIdentifier)
        {
            stove_authui_verifyIdentification(identifier, compareIdentifier);
        }

        [DllImport("__Internal")]
        private static extern void stove_authui_switchAccount(string identifier);
        internal static void SwitchAccount(string identifier)
        {
            stove_authui_switchAccount(identifier);
        }

        [DllImport("__Internal")]
        private static extern string stove_authui_version();
        internal static string GetVersion()
        {
            return stove_authui_version();
        }
    }
}

#endif
