import { Scale } from '../scale'; import { RomanNumeral } from './roman-numeral'; import { MatchingRule } from './rule'; export type SubstitutionRule = { target: MatchingRule; substitute: MatchingRule; }; /** * Substitutions represent replacements of chords with another * I.e. V can be replaced with V7, I can be replaced with vi6 * * These substitutions happen after expansions are applied, can only be applied to progression chords, and don't change the progression */ export declare namespace Substitution { const basic: SubstitutionRule[]; const dominantInversions: SubstitutionRule[]; const subdominantSevenths: SubstitutionRule[]; const defaultSubstitutions: SubstitutionRule[]; function matchingSubstitutions(scale: Scale, target: RomanNumeral, substitutions?: SubstitutionRule[]): Generator; }