import Exceptional from "../util/Exceptional"; import Pitch from "./Pitch"; declare class Interval { private quality; private distance; constructor(quality: Interval.Quality, distance: number); static isEnharmonic(a: Interval, b: Interval): boolean; static between(a: Pitch, b: Pitch): Exceptional; isSimple(): boolean; isCompound(): boolean; /** * follows the rules on https://en.wikipedia.org/wiki/Interval_(music)#Inversion * important for the inverse of compound intervals for which definitions online differ */ inverse(): Interval; getOffset(): number; static isPerfect(distance: number): boolean; static fromString(intervalString: string): Exceptional; toString(): string; getQuality(): Interval.Quality; getDistance(): number; } declare module Interval { class Quality { private symbol; static size: number; private static _values; static PERFECT: Quality; static MAJOR: Quality; static MINOR: Quality; static DIMINISHED: Quality; static DOUBLY_DIMINISHED: Quality; static AUGMENTED: Quality; static DOUBLY_AUGMENTED: Quality; private constructor(); static values(): Quality[]; ordinal(): number; static valueOf(qualityString: string): Quality; static fromString(qualityString: string): Exceptional; toString(): string; } } export default Interval;