import type { ComponentInteraction, ModalSubmitInteraction, StringSelectMenuInteraction, } from '../structures/Interaction'; import type { Button } from './Button'; import type { TextInput } from './Modal'; import type { BuilderSelectMenus } from './SelectMenu'; export type ComponentCallback< T extends ComponentInteraction | StringSelectMenuInteraction = ComponentInteraction | StringSelectMenuInteraction, > = (interaction: T, stop: ComponentStopCallback, refresh: ComponentRefreshCallback) => any; export type ComponentFilterCallback = (interaction: T) => any; export type ComponentStopCallback = (reason?: string, refresh?: ComponentRefreshCallback) => any; export type ComponentRefreshCallback = () => any; export type ModalSubmitCallback = (interaction: T) => any; export type ButtonLink = Omit; export type ButtonID = Omit; export type MessageBuilderComponents = FixedComponents