import { R as RangedNat, I as Int } from './NonNegativeInt-vzHTayKS.js';

declare const min = 0;
declare const max = 11;
type Shape = RangedNat<typeof min, typeof max>;
declare const hasShape: <T>(v: T) => v is T & (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11);
interface PitchClassBrand {
    readonly PitchClass: unique symbol;
}
/**
 * Integer notation of pitch class
 *
 * @see {@link https://en.wikipedia.org/wiki/Pitch_class}
 */
type PitchClass = Shape & PitchClassBrand;
declare const mark: (_v: Shape) => _v is PitchClass;
declare const markNum: (v: number) => v is PitchClass;
declare const markUnknown: (v: unknown) => v is PitchClass;
declare const from: (v: Shape) => PitchClass;
declare const fromNum: (v: number) => PitchClass | undefined;
declare const fromIntClamp: (v: Int) => PitchClass;
declare const fromIntMod: (v: Int) => PitchClass;
declare const fromUnknown: (v: unknown) => PitchClass | undefined;
declare const MIN: 0 & PitchClassBrand;
declare const MAX: 11 & PitchClassBrand;
declare const ALL: readonly PitchClass[];
declare const invert: (v: PitchClass, index?: Shape) => PitchClass;

export { ALL as A, MAX as M, type PitchClass as P, type Shape as S, MIN as a, type PitchClassBrand as b, fromIntClamp as c, fromIntMod as d, fromNum as e, from as f, fromUnknown as g, hasShape as h, invert as i, markNum as j, markUnknown as k, mark as m };
