using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Data.Abstractions { public interface ILookupCache<T> where T : class { Task InitializeAsync(); Task<T> AddAsync(T item); Task<T> FirstAsync(Func<T, bool> query); IEnumerable<T> GetAll(); } }