@bastion/tesseract
Version:
The heart and soul of the Bastion bot.
36 lines (35 loc) • 1.51 kB
TypeScript
import mongoose from "mongoose";
import { Client, ClientApplication, ClientOptions, Collection, Guild } from "discord.js";
import { Locke } from "@iamtraction/locke";
import TesseractCommand from "./TesseractCommand.js";
import TesseractFilter from "./TesseractFilter.js";
import TesseractMessageComponent from "./TesseractMessageComponent.js";
import TesseractSettings from "./TesseractSettings.js";
import { music } from "./types.js";
interface TesseractClientOptions extends ClientOptions {
tesseractSettings?: TesseractSettings;
}
declare class TesseractClient extends Client {
app: ClientApplication | void;
locales: Locke;
directory: string;
filters: Collection<string, TesseractFilter>;
commands: TesseractCommand[];
messageComponents: TesseractMessageComponent[];
settings: TesseractSettings;
studio: WeakMap<Guild, music.Studio>;
constructor(options: TesseractClientOptions);
setInterval(fn: (args: void) => void, ms: number): void;
private applyFilters;
protected loadCommands: (dir: string) => Promise<void>;
protected loadMessageComponents: () => Promise<void>;
protected initInteractions: () => Promise<void>;
protected initFilters: () => Promise<void>;
protected initListeners: () => Promise<void>;
protected initSchedulers: () => Promise<void>;
connectMongo: () => Promise<typeof mongoose>;
disconnectMongo: () => Promise<void>;
init(): Promise<string>;
toString: () => string;
}
export default TesseractClient;