import type { Interaction } from "discord.js"; import type { ComponentDefinition } from "./ComponentDefinition"; export interface RegisteredComponent { definition: ComponentDefinition; run(interaction: Int, args: Args): unknown | Promise; } export class ComponentRegistry { private registry = new Map>(); public register( definition: ComponentDefinition, run: (interaction: Int, args: Args) => unknown | Promise, ) { this.registry.set(definition.id, { definition, run }); } public get(id: string) { return this.registry.get(id); } }