/** * Represents the footer field of a {@link MessageEmbed} * @typedef {Object} MessageEmbedFooter * @property {string} [text] - The text of this footer * @property {string} [icon_url] - URL of the icon for this footer * @property {string} [proxy_url] - Proxied URL of the icon for this footer */ export interface MessageEmbedFooter { text: string; icon_url?: string; proxy_url?: string; } /** * Represents the image of a {@link MessageEmbed} * @typedef {Object} MessageEmbedImage * @property {string} [url] - URL for this image * @property {number} [height] - Height of this image * @property {number} [width] - Width of this image * @property {string} [proxy_url] - ProxyURL for this image */ export interface MessageEmbedImage { url: string; height?: number; width?: number; proxy_url?: string; } /** * Represents the thumbnail of a {@link MessageEmbed} * @typedef {Object} MessageEmbedThumbnail * @property {string} [url] - URL for this thumbnail * @property {number} [height] - Height of this thumbnail * @property {number} [width] - Width of this thumbnail * @property {string} [proxy_url] - ProxyURL for this thumbnail */ export interface MessageEmbedThumbnail { url: string; height?: number; width?: number; proxy_url?: string; } /** * The options to provide for setting an author for a {@link MessageEmbed} * @typedef {Object} MessageEmbedAuthor * @property {string} [text] - The name of this author * @property {string} [url] - The URL of this author * @property {string} [icon_url] - The icon URL of this author * @property {string} [proxy_icon_url] - The Proxied icon URL of this author */ export interface MessageEmbedAuthor { name: string; url?: string; icon_url?: string; proxy_icon_url?: string; } /** * Represents a field of a {@link MessageEmbed} * @typedef {Object} MessageEmbedField * @property {string} [name] - The name of this field * @property {string} [value] - The value of this field * @property {boolean} [inline] - If this field will be displayed inline */ export interface MessageEmbedField { name: string; value: string; inline?: boolean; } /** * Represents a Raw{@link MessageEmbed} * @typedef {Object} RawMessageEmbed * @property {?string} [title] - The title of this embed * @property {?string} [description] - The description of this embed * @property {string} [url] - The URL of this embed * @property {number} [timestamp] - The timestamp of this embed * @property {number} [color] - The color of this embed * @property {MessageEmbedFooter} [footer] - The footer of this embed * @property {MessageEmbedImage} [image] - The image of this embed * @property {MessageEmbedThumbnail} [thumbnail] - The thumbnail of this embed * @property {MessageEmbedAuthor} [author] - The author of this embed * @property {MessageEmbedField[]} [fields] - The fields of this embed */ export interface RawMessageEmbed { title?: string | null; description?: string | null; url?: string | null; timestamp?: number | null; color?: number | null; footer?: MessageEmbedFooter | null; image?: MessageEmbedImage | null; thumbnail?: MessageEmbedThumbnail | null; author?: MessageEmbedAuthor | null; fields?: MessageEmbedField[]; } /** * Represents an embed in a message (image/video preview, rich embed, etc) * @param {RawMessageEmbed|MessageEmbed} [embed] - MessageEmbed to clone or raw embed data */ declare class MessageEmbed { title: string | null; description: string | null; url: string | null; timestamp: number | null; color: number | null; footer: MessageEmbedFooter | null; image: MessageEmbedImage | null; thumbnail: MessageEmbedThumbnail | null; author: MessageEmbedAuthor | null; fields: MessageEmbedField[]; constructor(data?: RawMessageEmbed | MessageEmbed); /** * Sets the author of this embed * @param {?MessageEmbedAuthor} options - The options to provide for the author. Provide `null` to remove the author data * @returns {MessageEmbed} */ setAuthor(options: MessageEmbedAuthor | null): this; /** * Sets the title of this embed * @param {string} title - The title * @returns {MessageEmbed} */ setTitle(title?: string): this; /** * Sets the description of this embed * @param {string} description - The description * @returns {MessageEmbed} */ setDescription(description?: string): this; /** * Sets the URL of this embed * @param {string} url - The URL * @returns {MessageEmbed} */ setURL(url?: string): this; /** * Sets the timestamp of this embed * @param {string} [description=Date.now()] - The timestamp * @returns {MessageEmbed} */ setTimestamp(timestamp?: number): this; /** * Sets the color of this embed * @param {number} [color] - The hex color * @returns {MessageEmbed} */ setColor(color?: number): this; /** * Sets the footer of this embed * @param {?MessageEmbedFooter} [options] - The options to provide for the footer. Provide `null` to remove the footer data * @returns {MessageEmbed} */ setFooter(options: MessageEmbedFooter | null): this; /** * Sets the image of this embed * @param {string} [url] - The image URL * @returns {MessageEmbed} */ setImage(url?: string): this; /** * Sets the thumbnail of this embed * @param {string} [url] - The thumbnail URL * @returns {MessageEmbed} */ setThumbnail(url?: string): this; /** * Adds a field to the embed (max 25) * @param {MessageEmbedField} [options] - The options to provide for the field * @returns {MessageEmbed} */ addField(options: MessageEmbedField): this; /** * Sets the embed's fields (max 25) * @param {MessageEmbedField[]} [options] - The fields to set * @returns {MessageEmbed} */ setFields(options: MessageEmbedField[]): this; toJSON(): RawMessageEmbed; } export { MessageEmbed }; //# sourceMappingURL=MessageEmbed.d.ts.map