///
import Discord from "discord.js";
import EventEmitter from "events";
import Command from "./Command";
import { HelpSettings } from "./HelpCommand";
import { Logger, LoggerOptions } from "./Logging";
import * as models from "./Models";
export declare interface Handler {
on(event: U, listener: HandlerEvents[U]): this;
emit(event: U, ...args: Parameters): boolean;
}
export declare class Handler extends EventEmitter {
readonly client: Discord.Client;
commands: Commands;
private commandsDir;
private opts;
private listening;
readonly v: boolean;
private paused;
private logger?;
constructor({ client, prefix, commandsDir, verbose, admins, testServers, triggers, helpCommand, logging: loggerOptions, mongodb, blacklist, pauseCommand, ignoreBots, }: HandlerConstructor);
get isPaused(): boolean;
set pause(v: boolean);
get getOpts(): HandlerOpions;
get getCommands(): Commands;
get getLogger(): Logger | undefined;
loadCommands(dir: string, reload?: boolean): Promise;
private listen;
getCommand(name: string | string[]): Command | undefined;
private dbConnect;
}
export default Handler;
export declare type Commands = Discord.Collection;
export declare type HandlerOpions = {
prefix: string;
admins: Set;
testServers: Set;
triggers: Discord.Collection;
helpCommand?: HelpSettings;
blacklist: Array;
pauseCommand?: string;
ignoreBots?: boolean;
errMsg?: {
tooFewArgs?: string;
tooManyArgs?: string;
noAdmin?: string;
cooldown?: string;
globalCooldown?: string;
blacklist?: string;
noDM?: string;
};
};
export declare type HandlerConstructor = {
readonly client: Discord.Client;
prefix: string;
commandsDir: string;
verbose?: boolean;
admins?: Array;
testServers?: Array;
triggers?: Array>;
helpCommand?: HelpSettings;
logging?: LoggerOptions;
mongodb?: string;
blacklist?: Array;
pauseCommand?: string;
ignoreBots?: boolean;
};
export declare type HandlerEvents = {
ready: () => void;
dbConnected: () => void;
dbConnectFailed: (err: unknown) => void;
dbSynced: () => void;
};
export declare type HandlerCache = Discord.Collection;
//# sourceMappingURL=Handler.d.ts.map