import { type CustomStructures, OptionResolver } from '../commands'; import type { StructStates } from '../common/'; import { AnonymousGuild, ApplicationEmoji, AutoModerationRule, BaseChannel, BaseGuildChannel, CategoryChannel, ClientUser, DirectoryChannel, DMChannel, Emoji, Entitlement, ForumChannel, Guild, GuildBan, GuildEmoji, GuildMember, GuildRole, GuildTemplate, InteractionGuildMember, MediaChannel, Message, NewsChannel, Poll, StageChannel, Sticker, TextGuildChannel, ThreadChannel, User, VoiceChannel, VoiceState, Webhook, WebhookMessage, } from '../structures'; import { Application } from '../structures/Application'; import type { ChannelType } from '../types'; export type PollStructure = InferCustomStructure; export type ClientUserStructure = InferCustomStructure; export type ApplicationStructure = InferCustomStructure; export type ApplicationEmojiStructure = InferCustomStructure; export type AnonymousGuildStructure = InferCustomStructure; export type AutoModerationRuleStructure = InferCustomStructure; export type BaseChannelStructure = InferCustomStructure, 'BaseChannel'>; export type BaseGuildChannelStructure = InferCustomStructure; export type TextGuildChannelStructure = InferCustomStructure; export type DMChannelStructure = InferCustomStructure; export type VoiceChannelStructure = InferCustomStructure; export type StageChannelStructure = InferCustomStructure; export type MediaChannelStructure = InferCustomStructure; export type ForumChannelStructure = InferCustomStructure; export type ThreadChannelStructure = InferCustomStructure; export type CategoryChannelStructure = InferCustomStructure; export type NewsChannelStructure = InferCustomStructure; export type DirectoryChannelStructure = InferCustomStructure; export type GuildStructure = InferCustomStructure, 'Guild'>; export type GuildBanStructure = InferCustomStructure; export type EmojiStructure = InferCustomStructure; export type GuildEmojiStructure = InferCustomStructure; export type GuildMemberStructure = InferCustomStructure; export type InteractionGuildMemberStructure = InferCustomStructure; export type GuildRoleStructure = InferCustomStructure; export type GuildTemplateStructure = InferCustomStructure; export type MessageStructure = InferCustomStructure; export type WebhookMessageStructure = InferCustomStructure; export type StickerStructure = InferCustomStructure; export type UserStructure = InferCustomStructure; export type VoiceStateStructure = InferCustomStructure; export type WebhookStructure = InferCustomStructure; export type OptionResolverStructure = InferCustomStructure; export type EntitlementStructure = InferCustomStructure; export const Transformers = { Application(...args: ConstructorParameters): ApplicationStructure { return new Application(...args); }, ApplicationEmoji(...args: ConstructorParameters): ApplicationEmojiStructure { return new ApplicationEmoji(...args); }, AnonymousGuild(...args: ConstructorParameters): AnonymousGuildStructure { return new AnonymousGuild(...args); }, AutoModerationRule(...args: ConstructorParameters): AutoModerationRuleStructure { return new AutoModerationRule(...args); }, BaseChannel(...args: ConstructorParameters): BaseChannelStructure { return new BaseChannel(...args); }, BaseGuildChannel(...args: ConstructorParameters): BaseGuildChannelStructure { return new BaseGuildChannel(...args); }, TextGuildChannel(...args: ConstructorParameters): TextGuildChannelStructure { return new TextGuildChannel(...args); }, DMChannel(...args: ConstructorParameters): DMChannelStructure { return new DMChannel(...args); }, VoiceChannel(...args: ConstructorParameters): VoiceChannelStructure { return new VoiceChannel(...args); }, StageChannel(...args: ConstructorParameters): StageChannelStructure { return new StageChannel(...args); }, MediaChannel(...args: ConstructorParameters): MediaChannelStructure { return new MediaChannel(...args); }, ForumChannel(...args: ConstructorParameters): ForumChannelStructure { return new ForumChannel(...args); }, ThreadChannel(...args: ConstructorParameters): ThreadChannelStructure { return new ThreadChannel(...args); }, CategoryChannel(...args: ConstructorParameters): CategoryChannelStructure { return new CategoryChannel(...args); }, NewsChannel(...args: ConstructorParameters): NewsChannelStructure { return new NewsChannel(...args); }, DirectoryChannel(...args: ConstructorParameters): DirectoryChannelStructure { return new DirectoryChannel(...args); }, ClientUser(...args: ConstructorParameters): ClientUserStructure { return new ClientUser(...args); }, Guild(...args: ConstructorParameters): GuildStructure { return new Guild(...args); }, GuildBan(...args: ConstructorParameters): GuildBanStructure { return new GuildBan(...args); }, Emoji(...args: ConstructorParameters): EmojiStructure { return new Emoji(...args); }, GuildEmoji(...args: ConstructorParameters): GuildEmojiStructure { return new GuildEmoji(...args); }, GuildMember(...args: ConstructorParameters): GuildMemberStructure { return new GuildMember(...args); }, InteractionGuildMember( ...args: ConstructorParameters ): InteractionGuildMemberStructure { return new InteractionGuildMember(...args); }, GuildRole(...args: ConstructorParameters): GuildRoleStructure { return new GuildRole(...args); }, GuildTemplate(...args: ConstructorParameters): GuildTemplateStructure { return new GuildTemplate(...args); }, Message(...args: ConstructorParameters): MessageStructure { return new Message(...args); }, WebhookMessage(...args: ConstructorParameters): WebhookMessageStructure { return new WebhookMessage(...args); }, Poll(...args: ConstructorParameters): PollStructure { return new Poll(...args); }, Sticker(...args: ConstructorParameters): StickerStructure { return new Sticker(...args); }, User(...args: ConstructorParameters): UserStructure { return new User(...args); }, VoiceState(...args: ConstructorParameters): VoiceStateStructure { return new VoiceState(...args); }, Webhook(...args: ConstructorParameters): WebhookStructure { return new Webhook(...args); }, OptionResolver(...args: ConstructorParameters): OptionResolverStructure { return new OptionResolver(...args); }, Entitlement(...args: ConstructorParameters): EntitlementStructure { return new Entitlement(...args); }, }; export type InferCustomStructure = CustomStructures extends Record ? P : T;