UNPKG

rashi-discord-bot-lib

Version:

🚀 Powerful Discord bot framework with built-in database, event handling, and utilities

87 lines • 2.59 kB
import { Client } from 'discord.js'; import { Logger } from './Logger'; import type { VerseDatabase } from '../types'; export type CommandType = 'slash' | 'prefix'; export interface CommandUsage { count: number; type: CommandType; } export interface MostUsedCommand { name: string; uses: number; type: CommandType; } export interface DatabaseStats { adapter: string; keys: number; size?: number; } export interface DatabaseStore { name: string; adapter: string; status: 'connected' | 'down'; keys?: number; size?: number; info?: string; } export interface BotInfo { ownerId?: string; botInvite?: string; serverInvite?: string; avatar?: string; serverId?: string; } export interface MusicStats { enabled: boolean; library?: string; nodesTotal?: number; nodesConnected?: number; players?: number; playing?: number; defaultSearch?: string; } export interface GenerateStatsOptions { BotInfo?: BotInfo; } export declare class BotStatistics { private musicStats?; private logger; private startTime; private commandUsage; private eventTriggers; private printedOnce; private totalCommandsExecuted; private totalEventsTriggered; private responseTimes; private errorCount; private totalRequests; private loadedSlashCommands; private loadedPrefixCommands; private loadedEvents; private dbStats?; private dbStores; constructor(logger?: Logger); setDatabaseStats(stats?: DatabaseStats): void; setMusicStats(stats?: MusicStats): void; setDatabaseStores(stores: DatabaseStore[] | undefined): void; resetPrintedFlag(): void; loadDatabaseStatsFrom(db?: VerseDatabase): Promise<void>; initialize(client: Client): void; setLoadedCommands(slashCount: number, prefixCount: number): void; setLoadedEvents(eventCount: number): void; trackCommand(commandName: string, type: CommandType, responseTime?: number): void; trackEvent(eventName: string): void; trackError(): void; generateTableStats(client: Client, options: GenerateStatsOptions, databaseStats?: DatabaseStats): Promise<void>; generateStatsDisplay(client: Client): Promise<string>; get loadedEventsCount(): number; get loadedSlashCommandsCount(): number; get loadedPrefixCommandsCount(): number; private setupEventTracking; private getMostUsedCommand; private getAverageResponseTime; private getErrorRate; private formatBytes; private formatUptime; } //# sourceMappingURL=BotStatistics.d.ts.map