namespace ZB.MOM.WW.MxGateway.Server.Galaxy;
/// Cache for Galaxy Repository hierarchy data.
public interface IGalaxyHierarchyCache
{
/// The latest cache entry. Status freshness is recomputed against the clock.
GalaxyHierarchyCacheEntry Current { get; }
///
/// Forces a refresh against the Galaxy Repository. Performs a cheap
/// time_of_last_deploy probe first and only re-queries the heavy hierarchy +
/// attributes rowsets when the deploy time has changed since the last successful
/// refresh.
///
/// Token to cancel the asynchronous operation.
Task RefreshAsync(CancellationToken cancellationToken);
///
/// Awaits the first completed refresh attempt (success or failure). Useful for
/// gRPC handlers that want to serve from cache without returning Unavailable on the
/// very first request after gateway start.
///
/// Token to cancel the asynchronous operation.
Task WaitForFirstLoadAsync(CancellationToken cancellationToken);
}