import { GuildMember, Message, ModalMessageModalSubmitInteraction } from "discord.js"; import { PrismaClient } from "@prisma/client"; import { BaseEntry, BaseGuildCache, CommandPayload, ResponseBuilder } from "../"; export default abstract class BaseModal

> { /** * If the modal submission should be deferred * * @example true */ abstract defer: boolean; /** * If the modal submission should be ephemeral * * @example true */ abstract ephemeral: boolean; /** * Middleware to run before the {@link execute} method is called */ abstract middleware: ModalMiddleware[]; /** * The method that is called when a modal is submitted * * @param helper The ModalHelper containing information about the modal submission */ abstract execute(helper: ModalHelper): Promise; } export declare abstract class ModalMiddleware

> { /** * The function that should handle the modal interaction * * @param helper The ModalHelper containing information about the modal interaction * @returns If the next middleware / execute method should be called */ abstract handler(helper: ModalHelper): boolean | Promise; } export declare class ModalHelper

> { readonly cache: GC; readonly interaction: ModalMessageModalSubmitInteraction; constructor(cache: GC, interaction: ModalMessageModalSubmitInteraction); /** * The GuildMember that submitted the modal */ get member(): GuildMember; /** * The Message that opened this modal */ get message(): Message | null; /** * Respond to the user with the `followUp` method on the {@link interaction} * * @param options The data to send back to the user */ respond(options: ResponseBuilder | CommandPayload): void; /** * Update the response to the user with the `update` method on the {@link interaction} * * @param options The data to send back to the user */ update(options: ResponseBuilder | CommandPayload): void; /** * Get the text value the user entered * * @param customId CustomID of the value to get * @returns String */ text(customId: string): string; }