#pragma warning disable CS1591
#pragma warning disable CS0108
#if (UNITASK_NETCORE && !NETSTANDARD2_0) || UNITY_2022_3_OR_NEWER
#define SUPPORT_VALUETASK
#endif
using System;
using System.Runtime.CompilerServices;
namespace Cysharp.Threading.Tasks
{
    public enum UniTaskStatus
    {
        /// The operation has not yet completed.
        Pending = 0,
        /// The operation completed successfully.
        Succeeded = 1,
        /// The operation completed with an error.
        Faulted = 2,
        /// The operation completed due to cancellation.
        Canceled = 3
    }
    // similar as IValueTaskSource
    public interface IUniTaskSource
#if SUPPORT_VALUETASK
        : System.Threading.Tasks.Sources.IValueTaskSource
#endif
    {
        UniTaskStatus GetStatus(short token);
        void OnCompleted(Action