using System.Threading.Tasks;
using UnityEngine;
namespace SC.XR.Unity
{
public interface IProgressIndicator
{
///
/// Used to determine whether it's appropriate to use this indicator.
///
ProgressIndicatorState State { get; }
///
/// Loading progress value from 0 (just started) to 1 (complete)
///
float Progress { get; set; }
///
/// Opens the progress indicator before loading begins. Method is async to allow for animation to begin before loading.
///
Task OpenAsync();
///
/// Returns after progress indicator completes its opening or closing transition.
///
Task AwaitTransitionAsync();
///
/// Closes the progress indicator after loading is finished. Method is async to allow for animation to complete.
///
Task CloseAsync();
///
/// Set the progress value of the progress indicator.
///
void SetProgress(float progress);
}
}