UNPKG

seyfert

Version:

The most advanced framework for discord bots

33 lines (32 loc) 2.23 kB
import { type APIComponents, type APITopLevelComponent, ComponentType } from '../types'; import { MessageActionRowComponent } from './ActionRow'; import { BaseComponent } from './BaseComponent'; import { ButtonComponent, LinkButtonComponent, SKUButtonComponent } from './ButtonComponent'; import { ChannelSelectMenuComponent } from './ChannelSelectMenuComponent'; import { ContainerComponent } from './Container'; import { FileComponent } from './File'; import { MediaGalleryComponent } from './MediaGallery'; import { MentionableSelectMenuComponent } from './MentionableSelectMenuComponent'; import { RoleSelectMenuComponent } from './RoleSelectMenuComponent'; import { SectionComponent } from './Section'; import { SeparatorComponent } from './Separator'; import { StringSelectMenuComponent } from './StringSelectMenuComponent'; import { TextDisplayComponent } from './TextDisplay'; import { TextInputComponent } from './TextInputComponent'; import { UserSelectMenuComponent } from './UserSelectMenuComponent'; export type MessageComponents = ButtonComponent | LinkButtonComponent | SKUButtonComponent | RoleSelectMenuComponent | UserSelectMenuComponent | StringSelectMenuComponent | ChannelSelectMenuComponent | MentionableSelectMenuComponent | TextInputComponent; export type ActionRowMessageComponents = Exclude<MessageComponents, TextInputComponent>; export type AllComponents = MessageComponents | TopLevelComponents | ContainerComponents | BaseComponent<ComponentType>; export * from './componentcommand'; export * from './componentcontext'; export * from './modalcommand'; export * from './modalcontext'; export type TopLevelComponents = SectionComponent | ActionRowMessageComponents | TextDisplayComponent | ContainerComponent | FileComponent | MediaGalleryComponent | BaseComponent<APITopLevelComponent['type']>; export type ContainerComponents = MessageActionRowComponent | TextDisplayComponent | MediaGalleryComponent | SectionComponent | SeparatorComponent | FileComponent; /** * Return a new component instance based on the component type. * * @param component The component to create. * @returns The component instance. */ export declare function componentFactory(component: APIComponents): AllComponents;