#nullable disable
using NadekoBot.Modules.Utility.Patronage;
using NadekoBot.Services.Database.Models;
using OneOf;
using OneOf.Types;
namespace NadekoBot.Modules.Administration.Services;
public interface IReactionRoleService
{
///
/// Adds a single reaction role
///
/// Guild where to add a reaction role
/// Message to which to add a reaction role
///
///
///
///
/// The result of the operation
Task> AddReactionRole(
IGuild guild,
IMessage msg,
string emote,
IRole role,
int group = 0,
int levelReq = 0);
///
/// Get all reaction roles on the specified server
///
///
///
Task> GetReactionRolesAsync(ulong guildId);
///
/// Remove reaction roles on the specified message
///
///
///
///
Task RemoveReactionRoles(ulong guildId, ulong messageId);
///
/// Remove all reaction roles in the specified server
///
///
///
Task RemoveAllReactionRoles(ulong guildId);
Task> TransferReactionRolesAsync(ulong guildId, ulong fromMessageId, ulong toMessageId);
}