/**
 * Extendables allow you to "extend" native Discord.js classes with functions that you can use.
 * @module Extendable
 * @example <caption> They will always follow this structure. </caption>
 * exports.extend = function() { // code here };
 * exports.conf = {};
 */

/**
 * The part of the extendable that is added to the class.
 * @example <caption> This will create an extendable that replies to the author of the message with "Pong!" </caption>
 * exports.extend = function() {
 *   return this.reply("Pong!"); // The keyword 'this' refers to a Message Object.
  * }
 */
exports.extend = function() {}; // eslint-disable-line


/**
 * An Object containing configuration values that will configure an extendable.
 * @typedef {Object} Conf
 * @property {String} type Type of extendable. This will be one of the three: "method", "set", or "get".
 * @property {String} method The name of this extendable.
 * @property {Array} appliesTo An array of Discord.js classes that this extendable will apply to.
 * @property {boolean} komada Whether or not this extendable should apply to Komada or Discord.js
 */


/**
 * An object that configures the extendable.
 * @type {Conf}
 * @example <caption> When applied to Message, this would be accessed via <MessageObject>.ping(); </caption>
 * exports.conf = {
   type: "method",
   method: "ping",
   appliesTo: ["Message"],
   komada: false
 };
 */
exports.conf = {};