using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Flow.Launcher.Plugin
{
///
/// Asynchronous Plugin Model for Flow Launcher
///
public interface IAsyncPlugin
{
///
/// Asynchronous Querying
///
///
/// If the Querying or Init method requires high IO transmission
/// or performing CPU intense jobs (performing better with cancellation), please use this IAsyncPlugin interface
///
/// Query to search
/// Cancel when querying job is obsolete
///
Task> QueryAsync(Query query, CancellationToken token);
///
/// Initialize plugin asynchrously (will still wait finish to continue)
///
///
///
Task InitAsync(PluginInitContext context);
}
}