using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
namespace Discord
{
public interface ITextChannel : IChannel
{
/// Gets the message in this text channel with the given id, or null if none was found.
Task GetMessage(ulong id);
/// Gets the last N messages from this text channel.
/// The maximum number of messages to retrieve.
Task> GetMessages(int limit = 100);
/// Gets a collection of messages in this channel.
/// The maximum number of messages to retrieve.
/// The message to start downloading relative to.
/// The direction, from relativeMessageId, to download messages in.
Task> GetMessages(int limit = 100, ulong? relativeMessageId = null, Relative relativeDir = Relative.Before);
/// Sends a message to this text channel.
Task SendMessage(string text, bool isTTS = false);
/// Sends a file to this text channel, with an optional caption.
Task SendFile(string filePath, string text = null, bool isTTS = false);
/// Sends a file to this text channel, with an optional caption.
Task SendFile(Stream stream, string filename, string text = null, bool isTTS = false);
/// Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds.
Task SendIsTyping();
}
}