import { InteractionLike } from "."; import { Client } from "./Client"; import { InteractionReplyData } from "./interactions/BaseInteraction"; import { ShardInteraction } from "./sharding/ShardInteraction"; export declare class Message { data: MessageData; interaction: InteractionLike | ShardInteraction; components: { type: number; components: MessageComponent; }[]; client: Client; createdTimestamp: number; constructor(data: MessageData, client: InteractionLike | ShardInteraction); get embeds(): MessageEmbed[]; get attachments(): MessageAttachment[]; static edit(IMessage: Message, client: Client, data: any): Promise; removeAttachments(): Promise; staticEdit(channel_id: string, message_id: string, data: InteractionReplyData): Promise; edit(data: InteractionReplyData): Promise; reply(text: string): Promise; get id(): string; get author(): MessageAuthor; get content(): string; get channel(): string; get guild(): string; } export interface MessageData { id: string; type: number; content: string; channel_id: string; author: MessageAuthor; attachments: MessageAttachment[]; embeds: MessageEmbed[]; mentions: string[]; mention_roles: string[]; pinned: boolean; mention_everyone: boolean; tts: boolean; timestamp: string; edited_timestamp: string; flags: number; components: MessageComponent[]; application_id: string; webhhook_id: string; interaction: MessageInteraction; guild_id?: string; } declare interface MessageAuthor { id: string; name: string; discriminator: string; avatar: string; bot: boolean; public_flags: number; } declare interface MessageAttachment { id: string; filename: string; size: number; url: string; proxy_url: string; height: number; width: number; } declare interface MessageEmbed { type: "rich"; description: string; author: MessageAuthor; color: number; fields: MessageEmbedField[]; } declare interface MessageComponent { type: number; components: MessageComponent[]; } declare interface MessageInteraction { id: string; type: number; name: string; user: MessageAuthor; } declare interface MessageEmbedField { name: string; value: string; inline: boolean; } export {};