import { Provider } from 'nconf'; import { IDiscordBot, BotStatus, IAutoManagedBot } from '../../models/DiscordBot'; import { ICommandPermissions, CommandPermissionResult } from '../../models/CommandPermission'; import { Client, Guild, Interaction, Message, GatewayIntentBits } from 'discord.js'; import * as Rx from 'rxjs/Rx'; import { ICommand, ICommandResult, CommandResult, CommandInputContext, CommandUserInput, CommandInteractionRegistrationContext } from '../../models/Command'; import { ILogger } from 'tsdatautils-core'; import { InteractionRegistrationCommandContext } from '../services/interaction-registry.service'; import { BotCommandSetting, CommandSetting, ICommandSettingsBot } from '../../models/CommandSettings'; export declare class MultiGuildBot implements IDiscordBot, IAutoManagedBot, ICommandSettingsBot { guilds: Guild[]; name: string; color: number; onBotReady: Rx.Subject; onBotLoggedIn: Rx.Subject; onBotLoggedOut: Rx.Subject; onBotStatusChange: Rx.Subject; onBotRequiresRestart: Rx.Subject; onBotMessage: Rx.Subject; onBotInteraction: Rx.Subject; onBotError: Rx.Subject; onBotWarning: Rx.Subject; onBotJoinGuild: Rx.Subject; onBotLeaveGuild: Rx.Subject; logger: ILogger; botClient: Client; commands: ICommand[]; getSettingsCallback: (botId: string, guildId: string) => Promise; saveSettingCallback: (commandSetting: BotCommandSetting) => Promise; protected conf: Provider; protected botToken: string; protected status: BotStatus; protected commandSettings: CommandSetting[]; protected addSettingsCommand: boolean; constructor(passedBotName: string, passedBotToken: string, passedLogger: ILogger, passedConf: Provider); startBot(intents?: GatewayIntentBits[]): Promise; stopBot(): Promise; setupBot(): Promise; private isCommandPermissions; private isCommandSettings; setupBotSettings(): Promise; setupCommands(): ICommand[]; getStatus(): BotStatus; setStatus(status: BotStatus): void; addCommand(command: ICommand): void; restartBotDueToError(err: string): void; registerInteractions(force?: boolean): Promise; shouldRegisterInteractions(context: CommandInteractionRegistrationContext, interactions: InteractionRegistrationCommandContext[], botId: string, guildId: string): Promise; postInteractionRegistration(context: CommandInteractionRegistrationContext, interactions: InteractionRegistrationCommandContext[], botId: string, guildId: string): Promise; getCommandSetting(name: string, guildId: string): Promise; protected setupCommandPreExecute(command: ICommand): void; private deleteRegistrationFiles; private isICommandResultError; protected handleMessage(msg: Message): void; protected handleInteraction(interaction: Interaction): void; protected handleCommandMessage(command: ICommand, msg: Message): Promise; protected handleCommandInteraction(command: ICommand, interaction: Interaction): Promise; protected handleCommandPermissionRequirements(command: ICommand, inputContext: CommandInputContext, msg: Message, interaction: Interaction): Promise; protected handleLackPermissionReply(commandPermissions: ICommandPermissions, input: CommandUserInput): void; protected handleLackPermissionDeleteMessage(permissionResult: CommandPermissionResult, input: CommandUserInput): void; protected botInfo(info: string): void; protected botWarn(warn: string): void; protected botError(error: string): void; protected botDebug(debug: string): void; private updateGuildsConnectedTo; private setupBotEvents; private subscribeToSubjects; }