using System;
using UnityEngine;
namespace Jovian.PopupSystem {
///
/// Interface for popup show/hide animations. Each registered category gets its own instance
/// to prevent state corruption during concurrent animations. Driven by float timers in
/// , not coroutines.
///
public interface IPopupAnimator {
///
/// Begins a show animation on the given CanvasGroup. Typically fades alpha from 0 to 1.
///
/// The CanvasGroup to animate.
/// Animation duration in seconds.
/// Callback invoked when the animation finishes. May be null.
void Show(CanvasGroup canvasGroup, float duration, Action onComplete);
///
/// Begins a hide animation on the given CanvasGroup. Typically fades alpha to 0.
///
/// The CanvasGroup to animate.
/// Animation duration in seconds.
/// Callback invoked when the animation finishes. May be null.
void Hide(CanvasGroup canvasGroup, float duration, Action onComplete);
///
/// Advances the animation by deltaTime. Call every frame from .
///
void Tick(float deltaTime);
///
/// True if an animation is currently in progress.
///
bool IsAnimating { get; }
}
}