import { LoggerClientOptions } from '@navy.gif/logger'; import { GatewayIntentBits, Partials } from 'discord.js'; import { ComponentType } from '../src/client/interfaces/Component.ts'; import Inhibitor from '../src/client/interfaces/Inhibitor.ts'; export type ClientOptions = { // Set by the startup script rootDir: string, version: string, // User configured logger: LoggerClientOptions, developmentMode: boolean, developers: string[], prefix: string, libraryOptions: { partials?: Partials[], intents: GatewayIntentBits[], invalidRequestWarningInterval?: number } } export type ComponentOptions = { type: ComponentType, name: string, disabled?: boolean }; export type ExtendedCommandOptionDefinition = { restricted?: boolean } & CommandOptionDefinition export type CommandDefinition = { aliases?: string[], options?: (ExtendedCommandOptionDefinition | ExtendedCommandOption)[], restricted?: boolean, dmOnly?: boolean, guildOnly?: boolean, help?: string, limited?: Snowflake[], showUsage?: boolean, sameVc?: boolean, description?: string, } & Omit export type ObserverOptions = { priority?: number, hooks?: Hooks, } & Omit export type InhibitorOptions = { priority?: number, silent?: boolean } & Omit export type InhibitorResponse = { error: T, inhibitor: Inhibitor, reason: If, } export type UserResolveable = Snowflake | User | GuildMember | string; export type MemberResolveable = UserResolveable export type RoleResolveable = Snowflake | Role | string; export type ChannelResolveable = Snowflake | BaseChannel | string; export type DiscordBaseStruct = { id: string }