import { APIApplicationCommandInteractionDataOption, APIAttachment, APIChatInputApplicationCommandInteraction, APIInteractionDataResolved, ApplicationCommandOptionType, ApplicationCommandType } from "discord-api-types/v10"; import { InteractionDataResolvedChannel } from "../channels/PartialChannel.mjs"; import { InteractionDataResolvedGuildMember } from "../payloads/Member.mjs"; import Role from "../payloads/Role.mjs"; import User from "../payloads/User.mjs"; import ApplicationCommandInteraction from "./ApplicationCommandInteraction.mjs"; import type { MessageOption } from "./MessageCommandInteraction.mjs"; export default class ChatInputInteraction extends ApplicationCommandInteraction { commandType: ApplicationCommandType.ChatInput; /** The options that the invoking user has provided for the command */ options: ChatInputInteractionOption; constructor(interaction: APIChatInputApplicationCommandInteraction); } export type Options = StringOption | NumberOption | UserOption | RoleOption | BooleanOption | IntegerOption | ChannelOption | AttachmentOption | MentionableOption | MessageOption; export declare class BaseOption { type: ApplicationCommandOptionType; name: string; value: string | number | boolean; constructor(type: ApplicationCommandOptionType, name: string, value: string | number | boolean); } export declare class StringOption extends BaseOption { type: ApplicationCommandOptionType.String; value: string; constructor(name: string, value: string); } export declare class NumberOption extends BaseOption { type: ApplicationCommandOptionType.Number; value: number; constructor(name: string, value: number); } export declare class IntegerOption extends BaseOption { type: ApplicationCommandOptionType.Number; value: number; constructor(name: string, value: number); } export declare class BooleanOption extends BaseOption { type: ApplicationCommandOptionType.Boolean; value: boolean; constructor(name: string, value: boolean); } export declare class UserOption extends BaseOption { type: ApplicationCommandOptionType.User; value: string; user: User; member?: InteractionDataResolvedGuildMember; constructor(name: string, id: string, user: User, member?: InteractionDataResolvedGuildMember); } export declare class RoleOption extends BaseOption { type: ApplicationCommandOptionType.Role; value: string; role: Role; constructor(name: string, id: string, role: Role); } export type MentionableOption = UserOption | RoleOption; export declare class ChannelOption extends BaseOption { type: ApplicationCommandOptionType.Channel; value: string; channel: InteractionDataResolvedChannel; constructor(name: string, id: string, channel: InteractionDataResolvedChannel); } export declare class AttachmentOption extends BaseOption { type: ApplicationCommandOptionType.Attachment; value: string; attachment: APIAttachment; constructor(name: string, id: string, attachment: APIAttachment); } export declare function formatOption(option: APIApplicationCommandInteractionDataOption, resolved: APIInteractionDataResolved | undefined, guildId?: string): Options; export declare class ChatInputInteractionOption { readonly options: Record; readonly subCommands: { subCommand?: string; subCommandGroup?: string; }; constructor(options: APIApplicationCommandInteractionDataOption[] | undefined, resolved: APIInteractionDataResolved | undefined, guildId?: string); get(name: string, required: true): Options; get(name: string, required?: boolean): Options | undefined; getString(name: string, required: true): string; getString(name: string, required?: boolean): string | undefined; getBoolean(name: string, required: true): boolean; getBoolean(name: string, required?: boolean): boolean | undefined; getNumber(name: string, required: true): number; getNumber(name: string, required?: boolean): number | undefined; getInteger(name: string, required: true): number; getInteger(name: string, required?: boolean): number | undefined; getUser(name: string, required: true): User; getUser(name: string, required?: boolean): User | undefined; getMember(name: string, required: true): InteractionDataResolvedGuildMember; getMember(name: string, required?: boolean): InteractionDataResolvedGuildMember | undefined; getRole(name: string, required: true): Role; getRole(name: string, required?: boolean): Role | undefined; getMentionable(name: string, required: true): User | Role | InteractionDataResolvedGuildMember; getMentionable(name: string, required?: boolean): User | Role | InteractionDataResolvedGuildMember | undefined; getAttachment(name: string, required: true): APIAttachment; getAttachment(name: string, required?: boolean): APIAttachment | undefined; getChannel(name: string, required: true): InteractionDataResolvedChannel; getChannel(name: string, required?: boolean): InteractionDataResolvedChannel | undefined; getSubcommand(required: true): string; getSubcommand(required?: boolean): string | undefined; getSubcommandGroup(required: true): string; getSubcommandGroup(required?: boolean): string | undefined; }