export type If = T extends true ? A : T extends false ? B : A | B; 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 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[] }