import { BitFieldResolvable, Client } from 'discord.js'; import * as Rx from 'rxjs/Rx'; import { ILogger } from 'tsdatautils-core'; export interface IDiscordBot { name: string; color: number; logger: ILogger; setupBot(): Promise; startBot(intents: BitFieldResolvable): Promise; stopBot(): Promise; getStatus(): BotStatus; setStatus(status: BotStatus): void; } export interface IExposedClientBot { getBotClient(): Client; } export interface IAutoManagedBot { onBotRequiresRestart: Rx.Subject; restartBotDueToError(err: string): void; } export declare enum BotStatus { inactive = 0, active = 1, restartCooldown = 2 }