using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace Discord { public interface IDiscordClient : IDisposable { ConnectionState ConnectionState { get; } ISelfUser CurrentUser { get; } Task StartAsync(); Task StopAsync(); Task GetApplicationInfoAsync(); Task GetChannelAsync(ulong id, CacheMode mode = CacheMode.AllowDownload); Task> GetPrivateChannelsAsync(CacheMode mode = CacheMode.AllowDownload); Task> GetDMChannelsAsync(CacheMode mode = CacheMode.AllowDownload); Task> GetGroupChannelsAsync(CacheMode mode = CacheMode.AllowDownload); Task> GetConnectionsAsync(); Task GetGuildAsync(ulong id, CacheMode mode = CacheMode.AllowDownload); Task> GetGuildsAsync(CacheMode mode = CacheMode.AllowDownload); Task CreateGuildAsync(string name, IVoiceRegion region, Stream jpegIcon = null); Task GetInviteAsync(string inviteId); Task GetUserAsync(ulong id, CacheMode mode = CacheMode.AllowDownload); Task GetUserAsync(string username, string discriminator); Task> GetVoiceRegionsAsync(); Task GetVoiceRegionAsync(string id); } }