GetArgType<T, Enum>:T extends Number ? number : T extends String ? string : T extends User ? User : T extends URL ? string : T extends Json ? Record<string, unknown> : T extends RoleOrUser ? Role | User : T extends Guild ? Guild : T extends Color ? number : T extends Role ? Role : T extends TextChannel ? TextBasedChannel : T extends Attachment ? AttachmentBuilder : T extends BigInt ? bigint : T extends Unknown ? unknown : T extends Boolean ? boolean : T extends Date ? Date : T extends Enum ? GetEnum<Enum> : T extends Channel ? BaseChannel : T extends Message ? Message<true> : T extends Member ? GuildMember : T extends GuildEmoji ? GuildEmoji : T extends ApplicationEmoji ? ApplicationEmoji : T extends OverwritePermission ? OverwritePermission : T extends Sticker ? Sticker : T extends Reaction ? MessageReaction : T extends Webhook ? Webhook : T extends Invite ? Invite : T extends ForumTag ? GuildForumTag : T extends Time ? number : T extends Permission ? PermissionsString : T extends Emoji ? Emoji : T extends AutomodRule ? AutoModerationRule : T extends ScheduledEvent ? GuildScheduledEvent : T extends StageInstance ? StageInstance : null