UNPKG

seyfert

Version:

The most advanced framework for discord bots

118 lines (117 loc) 5.47 kB
import { type AllChannels, Embed } from '..'; import type { ListenerOptions } from '../builders'; import { type GuildMemberStructure, type GuildStructure, type MessageStructure, type PollStructure, type UserStructure, type WebhookMessageStructure, type WebhookStructure } from '../client/transformers'; import type { UsingClient } from '../commands'; import { type ObjectToLower } from '../common'; import type { EmojiResolvable } from '../common/types/resolvables'; import type { MessageCreateBodyRequest, MessageUpdateBodyRequest } from '../common/types/write'; import type { ActionRowMessageComponents } from '../components'; import { MessageActionRowComponent } from '../components/ActionRow'; import type { APIChannelMention, APIEmbed, APIMessage, GatewayMessageCreateDispatchData } from '../types'; import type { MessageWebhookMethodEditParams, MessageWebhookMethodWriteParams } from './Webhook'; import { DiscordBase } from './extra/DiscordBase'; export type MessageData = APIMessage | GatewayMessageCreateDispatchData; export interface BaseMessage extends DiscordBase, ObjectToLower<Omit<MessageData, 'timestamp' | 'author' | 'mentions' | 'components' | 'poll' | 'embeds'>> { timestamp?: number; guildId?: string; author: UserStructure; member?: GuildMemberStructure; components: MessageActionRowComponent<ActionRowMessageComponents>[]; poll?: PollStructure; mentions: { roles: string[]; channels: APIChannelMention[]; users: (GuildMemberStructure | UserStructure)[]; }; } export declare class BaseMessage extends DiscordBase { embeds: InMessageEmbed[]; constructor(client: UsingClient, data: MessageData); get user(): UserStructure; createComponentCollector(options?: ListenerOptions): import("../components/handler").CreateComponentCollectorResult; get url(): `https://discord.com/channels/${string}/${string}/${string}`; guild(force?: boolean): Promise<GuildStructure<'api'> | undefined>; channel(force?: boolean): Promise<AllChannels>; react(emoji: EmojiResolvable): Promise<void>; private patch; } export interface Message extends BaseMessage, ObjectToLower<Omit<MessageData, 'timestamp' | 'author' | 'mentions' | 'components' | 'poll' | 'embeds'>> { } export declare class Message extends BaseMessage { constructor(client: UsingClient, data: MessageData); fetch(force?: boolean): Promise<MessageStructure>; reply(body: Omit<MessageCreateBodyRequest, 'message_reference'>, fail?: boolean): Promise<MessageStructure>; edit(body: MessageUpdateBodyRequest): Promise<MessageStructure>; write(body: MessageCreateBodyRequest): Promise<MessageStructure>; delete(reason?: string): Promise<void>; crosspost(reason?: string): Promise<MessageStructure>; } export type EditMessageWebhook = Omit<MessageWebhookMethodEditParams, 'messageId'>['body'] & Pick<MessageWebhookMethodEditParams, 'query'>; export type WriteMessageWebhook = MessageWebhookMethodWriteParams['body'] & Pick<MessageWebhookMethodWriteParams, 'query'>; export declare class WebhookMessage extends BaseMessage { readonly webhookId: string; readonly webhookToken: string; constructor(client: UsingClient, data: MessageData, webhookId: string, webhookToken: string); fetchWebhook(): Promise<WebhookStructure>; fetch(): Promise<WebhookMessageStructure>; edit(body: EditMessageWebhook): Promise<WebhookMessageStructure>; write(body: WriteMessageWebhook): Promise<WebhookMessageStructure | null>; delete(reason?: string): Promise<never>; } export declare class InMessageEmbed { data: APIEmbed; constructor(data: APIEmbed); get title(): string | undefined; get type(): import("../types").EmbedType | undefined; get description(): string | undefined; get url(): string | undefined; get timestamp(): string | undefined; get color(): number | undefined; get footer(): { text: string; iconUrl?: string | undefined; proxyIconUrl?: string | undefined; } | undefined; get image(): { url: string; proxyUrl?: string | undefined; height?: number | undefined; width?: number | undefined; } | undefined; get thumbnail(): { url: string; proxyUrl?: string | undefined; height?: number | undefined; width?: number | undefined; } | undefined; get video(): { url?: string | undefined; proxyUrl?: string | undefined; height?: number | undefined; width?: number | undefined; } | undefined; get provider(): import("../types").APIEmbedProvider | undefined; get author(): { name: string; url?: string | undefined; iconUrl?: string | undefined; proxyIconUrl?: string | undefined; } | undefined; get fields(): import("../types").APIEmbedField[] | undefined; toBuilder(): Embed; toJSON(): { title?: string; type?: import("../types").EmbedType; description?: string; url?: string; timestamp?: string; color?: number; footer?: import("../types").APIEmbedFooter; image?: import("../types").APIEmbedImage; thumbnail?: import("../types").APIEmbedThumbnail; video?: import("../types").APIEmbedVideo; provider?: import("../types").APIEmbedProvider; author?: import("../types").APIEmbedAuthor; fields?: import("../types").APIEmbedField[]; }; }