namespace JSMR.Application.Common.Search;

public interface ISearchProvider<TItem, TCriteria, TSortField>
    where TCriteria : new()
    where TSortField : struct, Enum
{
    Task<SearchResult<TItem>> SearchAsync(SearchOptions<TCriteria, TSortField> options, CancellationToken cancellationToken = default);
}