using System.Threading;
using MusicMetaTagger.Core.Model;
using MusicMetaTagger.Core.Queries;

namespace MusicMetaTagger.Core.Services
{
	public interface ITrackSearcher
	{
		/// <summary>
		///   Searches for a matching track given the query.
		/// </summary>
		/// <param name="trackQuery"> The track query. </param>
		/// <param name="canellationToken"> </param>
		/// <returns> Most likely matching track. If none found, returns null. </returns>
		Track SearchTrack(TrackQuery trackQuery, CancellationToken canellationToken);
		event StatusHandler SearchStatusUpdate;
	}
 }