Source: example/src/interfaces/shape.js

/**
 * Shape Interface
 * @interface Geometry.Interfaces.Shape
 * @summary
 * * Describes a shape made up of a number of lines
 * * A JavaScript class that should be treated as an "interface"
 */
export default class Shape {
    /**
     * Constructs an instance of a shape from the supplied parameters
     * @property {Geometry.Utils.Line[]} lines - the set of lines that the shape is made from
     */
    constructor() {
        // I am an interface, so I don't do anything...
    }
    
    /**
     * Calculate the amount of space taken up by the shape
     * @returns {Number} the amount of space taken up by the shape
     * @abstract
     */
    area() {
        // Doesn't do anything...
    }
    
    /**
     * Calculate the total length of all lines of the shape
     * @returns {Number} the total length of all lines of the shape
     * @abstract
     */
    perimeter() {
        // Doesn't do anything...
    }
}

/**
 * Other Interface
 * @interface Geometry.Interfaces.Other
 * @summary
 * * Describes a second interface documented in the same file as some other symbol
 * * A JSDoc doclet that should be treated as an "interface"
 * @description
 * Lorem ipsum omnesque himenaeos vix mei periculis appareat.   
 * Purus nonumes animal percipit ac. Quot purus iriure posidonium magnis sit pertinacia similique fames.  
 * Consetetur usu explicari tibique metus. Labores mandamus venenatis malesuada posse.
 */