// This file is generated. Do not modify by hand.
// XML documentation file not found. To check if public methods have XML comments,
// make sure the XML doc file is present and located next to the scraped dll
namespace Unity.Services.Core.Editor
{
    public class CdnConfiguredEndpoint<T> : Unity.Services.Core.Editor.EditorGameServiceRemoteConfiguration<T> where T : new()
    {
        public CdnConfiguredEndpoint() {}
    }

    [System.Runtime.CompilerServices.Extension] public static class EditorGameServiceDashboardHelper
    {
        [System.Runtime.CompilerServices.Extension] public static void OpenDashboard(Unity.Services.Core.Editor.IEditorGameService editorGameService);
    }

    public abstract class EditorGameServiceFlagEnabler : Unity.Services.Core.Editor.IEditorGameServiceEnabler
    {
        public event System.Action ServiceFlagRequestComplete;
        protected abstract string FlagName { get; }
        protected EditorGameServiceFlagEnabler() {}
        public virtual void Disable();
        protected abstract void DisableLocalSettings();
        public virtual void Enable();
        protected abstract void EnableLocalSettings();
        public abstract bool IsEnabled();
    }

    public sealed class EditorGameServiceRegistry : Unity.Services.Core.Editor.IEditorGameServiceRegistry
    {
        public static Unity.Services.Core.Editor.EditorGameServiceRegistry Instance { get; }
        public virtual Unity.Services.Core.Editor.IEditorGameService GetEditorGameService<TIdentifier>() where TIdentifier : System.ValueType, Unity.Services.Core.Editor.IEditorGameServiceIdentifier, new();
    }

    public class EditorGameServiceRemoteConfiguration<T> where T : new()
    {
        public EditorGameServiceRemoteConfiguration(string configUrl) {}
        public void ClearCache();
        public void GetConfiguration(System.Action<T> onGetConfigurationCompleted);
    }

    public abstract class EditorGameServiceSettingsProvider : UnityEditor.SettingsProvider
    {
        protected abstract string Description { get; }
        protected abstract Unity.Services.Core.Editor.IEditorGameService EditorGameService { get; }
        protected abstract string Title { get; }
        protected EditorGameServiceSettingsProvider(string path, UnityEditor.SettingsScope scopes, System.Collections.Generic.IEnumerable<string> keywords = default(System.Collections.Generic.IEnumerable<string>)) {}
        protected static string GenerateProjectSettingsPath(string serviceName);
        protected abstract UnityEngine.UIElements.VisualElement GenerateServiceDetailUI();
        protected virtual UnityEngine.UIElements.VisualElement GenerateUnsupportedDetailUI();
    }

    public interface IEditorGameService
    {
        public abstract Unity.Services.Core.Editor.IEditorGameServiceEnabler Enabler { get; }
        public abstract bool HasDashboard { get; }
        public abstract Unity.Services.Core.Editor.IEditorGameServiceIdentifier Identifier { get; }
        public abstract string Name { get; }
        public abstract bool RequiresCoppaCompliance { get; }
        public abstract string GetFormattedDashboardUrl();
    }

    public interface IEditorGameServiceEnabler
    {
        public abstract void Disable();
        public abstract void Enable();
        public abstract bool IsEnabled();
    }

    public interface IEditorGameServiceIdentifier
    {
        public abstract string GetKey();
    }

    public interface IEditorGameServiceRegistry
    {
        public abstract Unity.Services.Core.Editor.IEditorGameService GetEditorGameService<T>() where T : System.ValueType, Unity.Services.Core.Editor.IEditorGameServiceIdentifier, new();
    }

    public static class PlatformSupportUiHelper
    {
        public static UnityEngine.UIElements.VisualElement GeneratePlatformSupport(System.Collections.Generic.IEnumerable<string> platforms);
    }
}
