using System.Threading.Tasks;
using ElectronNET.API.Entities;
namespace ElectronNET.API.Interfaces
{
///
/// Manage files and URLs using their default applications.
///
public interface IShell
{
///
/// Show the given file in a file manager. If possible, select the file.
///
/// The full path to the directory / file.
Task ShowItemInFolderAsync(string fullPath);
///
/// Open the given file in the desktop's default manner.
///
/// The path to the directory / file.
/// The error message corresponding to the failure if a failure occurred, otherwise .
Task OpenPathAsync(string path);
///
/// Open the given external protocol URL in the desktop’s default manner.
/// (For example, mailto: URLs in the user’s default mail agent).
///
/// Max 2081 characters on windows.
/// The error message corresponding to the failure if a failure occurred, otherwise .
Task OpenExternalAsync(string url);
///
/// Open the given external protocol URL in the desktop’s default manner.
/// (For example, mailto: URLs in the user’s default mail agent).
///
/// Max 2081 characters on windows.
/// Controls the behavior of OpenExternal.
/// The error message corresponding to the failure if a failure occurred, otherwise .
Task OpenExternalAsync(string url, OpenExternalOptions options);
///
/// Move the given file to trash and returns a status for the operation.
///
/// The full path to the directory / file.
/// Whether the item was successfully moved to the trash.
Task TrashItemAsync(string fullPath);
///
/// Play the beep sound.
///
void Beep();
///
/// Creates or updates a shortcut link at shortcutPath.
///
/// The path to the shortcut.
/// Default is
/// Structure of a shortcut.
/// Whether the shortcut was created successfully.
Task WriteShortcutLinkAsync(string shortcutPath, ShortcutLinkOperation operation, ShortcutDetails options);
///
/// Resolves the shortcut link at shortcutPath.
/// An exception will be thrown when any error happens.
///
/// The path tot the shortcut.
/// of the shortcut.
Task ReadShortcutLinkAsync(string shortcutPath);
}
}