Luski.Net/Luski.net/Interfaces/IChannel.cs

33 lines
1.2 KiB
C#
Executable File

using Luski.net.Enums;
using Luski.net.JsonTypes;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Luski.net.Interfaces;
/// <summary>
/// <see cref="ITextChannel"/> contains a list of variables that all channels from luski have
/// </summary>
public interface ITextChannel
{
long Id { get; }
string Title { get; }
string Description { get; }
string Key { get; }
/// <summary>
/// <see cref="ITextChannel.Type"/> returns the current <see cref="ChannelType"/> of the <see cref="ITextChannel"/>
/// </summary>
ChannelType Type { get; }
/// <summary>
/// Sends a <paramref name="Message"/> to the server for the currently selected <see cref="ITextChannel"/>
/// </summary>
/// <param name="Message">The messate you want to send to the server</param>
Task<Task> SendMessage(string Message, params File[] Files);
Task<Task> SendKeysToUsers();
Task<SocketMessage> GetMessage(long ID);
Task<IReadOnlyList<SocketMessage>> GetMessages(long Message_Id, int count = 50);
Task<IReadOnlyList<SocketMessage>> GetMessages(int count = 50);
Task<byte[]> GetPicture();
IReadOnlyList<IUser> Members { get; }
}