#nullable disable namespace NadekoBot.Services; public interface IStatsService { /// /// The author of the bot. /// string Author { get; } /// /// The total amount of commands ran since startup. /// long CommandsRan { get; } /// /// The amount of messages seen by the bot since startup. /// long MessageCounter { get; } /// /// The rate of messages the bot sees every second. /// double MessagesPerSecond { get; } /// /// The total amount of text channels the bot can see. /// long TextChannels { get; } /// /// The total amount of voice channels the bot can see. /// long VoiceChannels { get; } /// /// Gets for how long the bot has been up since startup. /// TimeSpan GetUptime(); /// /// Gets a formatted string of how long the bot has been up since startup. /// /// The formatting separator. string GetUptimeString(string separator = ", "); /// /// Gets total amount of private memory currently in use by the bot, in Megabytes. /// double GetPrivateMemoryMegabytes(); GuildInfo GetGuildInfoAsync(string name); Task GetGuildInfoAsync(ulong id); } public record struct GuildInfo { public required string Name { get; init; } public required string IconUrl { get; init; } public required string Owner { get; init; } public required ulong OwnerId { get; init; } public required ulong Id { get; init; } public required int TextChannels { get; init; } public required int VoiceChannels { get; init; } public required DateTime CreatedAt { get; init; } public required IReadOnlyList Features { get; init; } public required IReadOnlyList Emojis { get; init; } public required IReadOnlyList Roles { get; init; } public int MemberCount { get; init; } }