import type { ModalSubmitInteraction } from "discord.js"; import type { ModalDefinition } from "./ModalDefinition"; export interface RegisteredModal { definition: ModalDefinition; run(interaction: ModalSubmitInteraction, args: Args): unknown | Promise; } class ModalRegistry { private modals = new Map>(); public register( definition: ModalDefinition, run: (interaction: ModalSubmitInteraction, args: Args) => unknown | Promise, ) { this.modals.set(definition.id, { definition, run }); } public get(id: string) { return this.modals.get(id); } } export const modalRegistry = new ModalRegistry();