using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
namespace Discord.Rest
{
public interface IRestMessageChannel : IMessageChannel
{
/// Sends a message to this message channel.
new Task SendMessageAsync(string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
/// Sends a file to this text channel, with an optional caption.
new Task SendFileAsync(string filePath, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
/// Sends a file to this text channel, with an optional caption.
new Task SendFileAsync(Stream stream, string filename, string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null);
/// Gets a message from this message channel with the given id, or null if not found.
Task GetMessageAsync(ulong id, RequestOptions options = null);
/// Gets the last N messages from this message channel.
IAsyncEnumerable> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
/// Gets a collection of messages in this channel.
IAsyncEnumerable> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
/// Gets a collection of messages in this channel.
IAsyncEnumerable> GetMessagesAsync(IMessage fromMessage, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch, RequestOptions options = null);
/// Gets a collection of pinned messages in this channel.
new Task> GetPinnedMessagesAsync(RequestOptions options = null);
}
}