using System;
using System.Threading.Tasks;
using Timeline.Entities;
namespace Timeline.Services.Api
{
    public interface ISearchService
    {
        /// 
        /// Search timelines whose name or title contains query string.
        /// 
        /// String to contain.
        /// Search results.
        /// Thrown when  is null.
        /// Thrown when  is empty.
        /// 
        /// Implementation should promise high score is at first.
        /// 
        Task> SearchTimelineAsync(string query);
        /// 
        /// Search users whose username or nickname contains query string.
        /// 
        /// String to contain.
        /// Search results.
        /// Thrown when  is null.
        /// Thrown when  is empty.
        /// 
        /// Implementation should promise high score is at first.
        /// 
        Task> SearchUserAsync(string query);
    }
}