import type { EmbedAuthorOptions, EmbedField, EmbedImageOptions, EmbedOptions } from "oceanic.js"; export default class EmbedBuilder { /** * create an embed builder instance (or multiple) from the provided json * * @param {(EmbedOptions | Array)} json - the embed json - accepts singular & array * @param {boolean} [forceSingular=false] - force a singular return when an array is supplied * @returns {(EmbedBuilder | Array)} */ static loadFromJSON(json: EmbedOptions): EmbedBuilder; static loadFromJSON(json: Array, forceSingular?: T): T extends true ? EmbedBuilder : Array; private json; /** * load json into this embed builder instance - use static loadFromJSON method * * @private * @param {EmbedOptions} json - the json to load * @returns {this} */ private load; /** * set the embed author * * @param {string} name - the name of the author * @param {string} [iconURL] - an icon url for the author * @param {string} [url] - a url for the author * @returns {this} */ setAuthor(name: string, iconURL?: string, url?: string): this; /** * get the current author * * @returns {(EmbedAuthorOptions | undefined)} */ getAuthor(): EmbedAuthorOptions | undefined; /** * remove the current author * * @returns {this} */ removeAuthor(): this; /** * set the embed color * * @param {number} color - the color * @returns {this} */ setColor(color: number): this; /** * get the current color * * @returns {(number | undefined)} */ getColor(): number | undefined; /** * remove the current color * * @returns {this} */ removeColor(): this; /** * set the embed description * * @param {...(string | Array)} value - the description value * @returns {this} */ setDescription(first: string | Array, ...other: Array<(string | Array)>): this; /** * get the current description * * @returns {(string | undefined)} */ getDescription(): string | undefined; /** * remove the current description * * @returns {this} */ removeDescription(): this; /** * add a field to the embed * * @param {string} name - the field name * @param {string} value - the field value * @param {boolean} [inline] - if the field should be inline * @returns {this} */ addField(name: string, value: string, inline?: boolean): this; /** * add a blank field to the embed (zero width spaces) * * @param {boolean} [inline] - if the field should be inline * @returns {this} */ addBlankField(inline?: boolean): this; /** * get the field at the specified index * * @param {number} index - the index of the field to get * @returns {this} */ getField(index: number): EmbedField; /** * add multiple raw fields * * @param {...EmbedField} args - the fields to add * @returns {this} */ addFields(...args: Array): this; /** * get the current fields * * @returns {Array} */ getFields(): EmbedField[]; /** * set the embed footer * * @param {string} text - the text * @param {string} [iconURL] - the icon url * @returns {this} */ setFooter(text: string, iconURL?: string): this; /** * get the current footer * * @returns {(string | undefined)} */ getFooter(): import("oceanic.js").EmbedFooterOptions | undefined; /** * remove the current footer * * @returns {this} */ removeFooter(): this; /** * set the embed image * * @param {string} url - image url * @returns {this} */ setImage(url: string): this; /** * get the current image * * @returns {(EmbedImageOptions | undefined)} */ getImage(): EmbedImageOptions | undefined; /** * remove the current image * * @returns {this} */ removeImage(): this; /** * set the embed thumbnail * * @param {string} url - thumbnail url * @returns {this} */ setThumbnail(url: string): this; /** * get the current thumbnail * * @returns {(EmbedImageOptions | undefined)} */ getThumbnail(): EmbedImageOptions | undefined; /** * remove the current thumbnail * * @returns {this} */ removeThumbnail(): this; /** * set the embed timestamp * * @param {(string | Date | "now")} time - an iso timestamp, Date object, or "now" * @returns {this} */ setTimestamp(time: string | Date | "now"): this; /** * get the current timestamp * * @returns {(string | undefined)} */ getTimestamp(): string | undefined; /** * get the current timestamp as a date object * * @returns {(Date | undefined)} */ getTimestampDate(): Date | undefined; /** * remove the current timestamp * * @returns {this} */ removeTimestamp(): this; /** * set the embed title * * @param {string} title - the title * @returns {this} */ setTitle(title: string): this; /** * get the current title * * @returns {(string | undefined)} */ getTitle(): string | undefined; /** * remove the current title * * @returns {this} */ removeTitle(): this; /** * set the embed url * * @param {string} url - the url * @returns {this} */ setURL(url: string): this; /** * get the current url * * @returns {(string | undefined)} */ getURL(): string | undefined; /** * remove the current url * * @returns {this} */ removeURL(): this; /** * convert this embed to a json object * * @param {boolean} array - if the returned value should be contained in an array * @returns {(EmbedOptions | Array)} */ toJSON(array: true): [EmbedOptions]; toJSON(array?: false): EmbedOptions; }