Source: core/src/types.jsdoc

/**
 * Citation.js input data, see {@tutorial input_formats}
 *
 * @typedef module:@citation-js/core~InputData
 * @tutorial input_formats
 */

/**
 * Citation.js {@tutorial input_options}
 *
 * @typedef {Object} module:@citation-js/core~InputOptions
 * @tutorial input_options
 *
 * @property {module:@citation-js/core~OutputOptions} output
 * @property {Number} maxChainLength
 * @property {Boolean} generateGraph
 * @property {Boolean} strict
 * @property {Cite.parse~format} forceType
 * @property {Cite.parse~format} target
 */

/**
 * Citation.js {@tutorial output_options}
 *
 * @typedef {Object} module:@citation-js/core~OutputOptions
 * @tutorial output_options
 *
 * @property {String} format
 * @property {String} type
 * @property {String} style
 * @property {String} lang
 * @property {String|module:@citation-js/core~wrapper} prepend
 * @property {String|module:@citation-js/core~wrapper} append
 * @property {Object} _newOptions - used internally (for the CLI), if you need this move to Cite#format() probably
 */

/**
 * @callback module:@citation-js/core~wrapper
 * @param {module:@citation-js/core~CSL} data - Cite object
 * @return {String} wrapping string
 */

/**
 * [CSL](https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html#csl-json-items) object
 *
 * @typedef {Object} module:@citation-js/core~CSL
 */