export declare function coerceHTMLElement(el?: JQuery | HTMLElement): HTMLElement;
/**
* concept borrowed from Vex.Flow.Merge, though here the source can be undefined;
* http://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically
* recursive parts used in .clone()
*
* @param {Object} destination - object to have attributes placed into
* @param {Object} source - object to take attributes from.
* @returns {Object} destination
*/
export declare function merge(destination: T, source?: object): T;
export declare function range(start: number, stop: number, step: number): any;
/**
* Mix in another class into this class -- a simple form of multiple inheritance.
* See articulations.Marcato for an example.
*
*/
export declare function mixin(OtherParent: any, thisClassOrObject: any): void;
/**
* Aggregation -- closer to true multiple inheritance -- prefers last class's functions. See
* https://stackoverflow.com/questions/29879267/es6-class-multiple-inheritance
*
* not currently used...
*/
/**
* posMod - return a modulo value that is not negative
*
* @param {int} a value
* @param {int} b modulo
* @return {int} a mod b between 0 and b - 1
*/
export declare function posMod(a: number, b: number): number;
/**
*
* Returns the statistical mode (most commonly appearing element)
* in 'a' which is an Array or iterable.
*
* In case of tie, returns the first element to reach the maximum
* number of occurrences.
*
* @param {Array<*>} a - an array to analyze
* @returns {Object} element with the highest frequency in an array.
*/
export declare function statisticalMode(a: readonly number[]): number;
/**
* fromRoman - Convert a Roman numeral (upper or lower) to an int.
*/
export declare function fromRoman(num: string): number;
/**
* toRoman - Convert a number from 1 to 3999 to a roman numeral
*/
export declare function toRoman(num: number): string;
/**
* Creates an SVGElement of an SVG figure using the correct `document.createElementNS` call.
* tag defaults to svg, but can be 'rect', 'circle', 'text', etc.
* Attributes is an object to pass to the tag.
*
* If tag is not specified creates