import { distance as distance$1 } from '@tonaljs/pitch-distance'; import { IntervalName, interval } from '@tonaljs/pitch-interval'; /** * Get the natural list of names */ declare function names(): IntervalName[]; /** * Get properties of an interval * * @function * @example * Interval.get('P4') // => {"alt": 0, "dir": 1, "name": "4P", "num": 4, "oct": 0, "q": "P", "semitones": 5, "simple": 4, "step": 3, "type": "perfectable"} */ declare const get: typeof interval; /** * Get name of an interval * * @function * @example * Interval.name('4P') // => "4P" * Interval.name('P4') // => "4P" * Interval.name('C4') // => "" */ declare const name: (name: string) => string; /** * Get semitones of an interval * @function * @example * Interval.semitones('P4') // => 5 */ declare const semitones: (name: string) => number; /** * Get quality of an interval * @function * @example * Interval.quality('P4') // => "P" */ declare const quality: (name: string) => "dddd" | "ddd" | "dd" | "d" | "m" | "M" | "P" | "A" | "AA" | "AAA" | "AAAA"; /** * Get number of an interval * @function * @example * Interval.num('P4') // => 4 */ declare const num: (name: string) => number; /** * Get the simplified version of an interval. * * @function * @param {string} interval - the interval to simplify * @return {string} the simplified interval * * @example * Interval.simplify("9M") // => "2M" * Interval.simplify("2M") // => "2M" * Interval.simplify("-2M") // => "7m" * ["8P", "9M", "10M", "11P", "12P", "13M", "14M", "15P"].map(Interval.simplify) * // => [ "8P", "2M", "3M", "4P", "5P", "6M", "7M", "8P" ] */ declare function simplify(name: IntervalName): IntervalName; /** * Get the inversion (https://en.wikipedia.org/wiki/Inversion_(music)#Intervals) * of an interval. * * @function * @param {string} interval - the interval to invert in interval shorthand * notation or interval array notation * @return {string} the inverted interval * * @example * Interval.invert("3m") // => "6M" * Interval.invert("2M") // => "7m" */ declare function invert(name: IntervalName): IntervalName; /** * Get interval name from semitones number. Since there are several interval * names for the same number, the name it's arbitrary, but deterministic. * * @param {Integer} num - the number of semitones (can be negative) * @return {string} the interval name * @example * Interval.fromSemitones(7) // => "5P" * Interval.fromSemitones(-7) // => "-5P" */ declare function fromSemitones(semitones: number): IntervalName; /** * Find interval between two notes * * @example * Interval.distance("C4", "G4"); // => "5P" */ declare const distance: typeof distance$1; /** * Adds two intervals * * @function * @param {string} interval1 * @param {string} interval2 * @return {string} the added interval name * @example * Interval.add("3m", "5P") // => "7m" */ declare const add: (a: IntervalName, b: IntervalName) => IntervalName | undefined; /** * Returns a function that adds an interval * * @function * @example * ['1P', '2M', '3M'].map(Interval.addTo('5P')) // => ["5P", "6M", "7M"] */ declare const addTo: (interval: string) => (other: string) => string | undefined; /** * Subtracts two intervals * * @function * @param {string} minuendInterval * @param {string} subtrahendInterval * @return {string} the subtracted interval name * @example * Interval.subtract('5P', '3M') // => '3m' * Interval.subtract('3M', '5P') // => '-3m' */ declare const subtract: (a: IntervalName, b: IntervalName) => IntervalName | undefined; declare function transposeFifths(interval: IntervalName, fifths: number): IntervalName; /** @deprecated */ declare const _default: { names: typeof names; get: typeof interval; name: (name: string) => string; num: (name: string) => number; semitones: (name: string) => number; quality: (name: string) => "dddd" | "ddd" | "dd" | "d" | "m" | "M" | "P" | "A" | "AA" | "AAA" | "AAAA"; fromSemitones: typeof fromSemitones; distance: typeof distance$1; invert: typeof invert; simplify: typeof simplify; add: (a: IntervalName, b: IntervalName) => IntervalName | undefined; addTo: (interval: string) => (other: string) => string | undefined; subtract: (a: IntervalName, b: IntervalName) => IntervalName | undefined; transposeFifths: typeof transposeFifths; }; export { add, addTo, _default as default, distance, fromSemitones, get, invert, name, names, num, quality, semitones, simplify, subtract, transposeFifths };