70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import {
|
|
type ActionRow,
|
|
type Button,
|
|
type ChannelSelectMenu,
|
|
type GuildChannelTypes,
|
|
type MentionableSelectMenu,
|
|
type PartialEmoji,
|
|
type RoleSelectMenu,
|
|
type StringSelectMenu,
|
|
type TextInput,
|
|
type UserSelectMenu,
|
|
type LabelComponent,
|
|
type ContainerComponent,
|
|
type TextDisplayComponent,
|
|
type SectionComponent,
|
|
type MediaGalleryComponent,
|
|
type SeparatorComponent,
|
|
type FileComponent,
|
|
type InteractionButton,
|
|
type URLButton,
|
|
type PremiumButton,
|
|
type ThumbnailComponent,
|
|
} from '@projectdysnomia/dysnomia';
|
|
|
|
declare namespace JSX {
|
|
type Component =
|
|
| ActionRow
|
|
| Button
|
|
| StringSelectMenu
|
|
| UserSelectMenu
|
|
| RoleSelectMenu
|
|
| MentionableSelectMenu
|
|
| ChannelSelectMenu
|
|
| TextInput
|
|
| LabelComponent
|
|
| ContainerComponent
|
|
| {
|
|
type: 10;
|
|
content: string;
|
|
}
|
|
| SectionComponent
|
|
| MediaGalleryComponent
|
|
| SeparatorComponent
|
|
| FileComponent
|
|
| InteractionButton
|
|
| URLButton
|
|
| PremiumButton
|
|
| ThumbnailComponent;
|
|
|
|
type Element = Component | Promise<Component>;
|
|
|
|
interface ElementClass {
|
|
render: any;
|
|
}
|
|
|
|
interface ElementAttributesProperty {
|
|
props: {};
|
|
}
|
|
|
|
interface IntrinsicElements {
|
|
// Allow any element, but prefer known elements
|
|
[elemName: string]: any;
|
|
// Known elements
|
|
ActionRow: { children: any | any[] };
|
|
Button: { label: string; customId: string; style?: number; emoji?: PartialEmoji; disabled?: boolean };
|
|
Container: { accent?: number; spoiler?: boolean; children: any | any[] };
|
|
TextDisplay: { content: string };
|
|
}
|
|
}
|