using System.Threading.Tasks;
namespace Flow.Launcher.Plugin
{
///
/// This interface is for plugins that wish to provide file preview (external preview)
/// via a third party app instead of the default preview.
///
public interface IAsyncExternalPreview : IFeatures
{
///
/// Method for opening/showing the preview.
///
/// The file path to open the preview for
/// Whether to send a toast message notification on failure for the user
public Task OpenPreviewAsync(string path, bool sendFailToast = true);
///
/// Method for closing/hiding the preview.
///
public Task ClosePreviewAsync();
///
/// Method for switching the preview to the next file result.
/// This requires the external preview be already open/showing
///
/// The file path to switch the preview for
/// Whether to send a toast message notification on failure for the user
public Task SwitchPreviewAsync(string path, bool sendFailToast = true);
}
}