import Exceptional from "../util/Exceptional"; import ImmutablePrioritySet from "../util/ImmutablePrioritySet"; import Interval from "./Interval"; import Key from "./Key"; import KeySignature from "./KeySignature"; import Policy from "./Policy"; export default class Pitch { private key; private octave; constructor(key: Key, octave: number); apply(keySignature: KeySignature): Pitch; step(amount: Interval | number, policies?: ImmutablePrioritySet): Exceptional; halfStepUp(policies?: ImmutablePrioritySet): Exceptional; halfStepDown(policies?: ImmutablePrioritySet): Exceptional; getHigherPitch(key: Key): Exceptional; getLowerPitch(key: Key): Exceptional; isHigherThan(pitch: Pitch): boolean; isLowerThan(pitch: Pitch): boolean; compareTo(pitch: Pitch): number; static isEnharmonic(a: Pitch, b: Pitch): boolean; static fromProgramNumber(programNumber: number, policies?: ImmutablePrioritySet): Exceptional; getProgramNumber(): number; /** * Any input in the form * - ${key}${octave} * - ${key}${octave}(${program number}) * is accepted and converted into a Pitch. * ${program number} is intentionally not accepted because #fromProgramNumber * exists and should be used instead. */ static fromString(pitchString: string): Exceptional; toString(): string; equals(other: any): boolean; getKey(): Key; getOctave(): number; }