// Galactic - Discord moderation bot // Copyright (C) 2024 Navy.gif // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . import { WriteOptions, LoggerClient } from '@navy.gif/logger'; import { ClientOptions } from './Client.ts'; export type CommandOption = { [key: string]: unknown } export type Command = { name: string, options: { [key: string]: CommandOption } } export type CommandsDef = { type: 'global' | 'guild', commands: Command[], guilds: string[], clientId: string } export type IPCMessage = { id?: string, _start?: ClientOptions, _ready?: boolean, _disconnect?: boolean, _reconnecting?: boolean, _fetchProp?: string, _sFetchProp?: string, _sFetchPropShard?: number, _sEval?: string, _sEvalShard?: number, _eval?: string, _result?: unknown, _error?: Error, _sRespawnAll?: { shardDelay: number, respawnDelay: number, timeout: number }, _mEval?: boolean, _mEvalResult?: boolean _logger?: boolean, _api?: boolean, _commands?: CommandsDef, _shutdown?: boolean, _fatal?: boolean, success?: boolean script?: string, debug?: boolean, type?: string, data?: unknown, shards?: number[] } export type PlainError = { name: string; message: string; stack?: string; } export type EnvObject = { [key: string]: unknown, SHARDING_MANAGER: boolean SHARD_ID: number SHARD_COUNT: number DISCORD_TOKEN: string | null } export type Loggable = { createLogger: (comp: object, options?: WriteOptions) => LoggerClient } & T; export type Hookable = { ready: boolean } & T