type TimeSignatureLiteral = string | [number, number] | [string, string];
type ParsedTimeSignature = [number | number[], number];
type ValidTimeSignature = {
    readonly empty: false;
    readonly name: string;
    readonly upper: number | number[];
    readonly lower: number;
    readonly type: "simple" | "compound" | "irregular" | "irrational";
    readonly additive: number[];
};
type InvalidTimeSignature = {
    readonly empty: true;
    readonly name: "";
    readonly upper: undefined;
    readonly lower: undefined;
    readonly type: undefined;
    readonly additive: [];
};
type TimeSignature = ValidTimeSignature | InvalidTimeSignature;
declare function names(): string[];
declare function get(literal: TimeSignatureLiteral): TimeSignature;
declare function parse(literal: TimeSignatureLiteral): ParsedTimeSignature;
/** @deprecated */
declare const _default: {
    names: typeof names;
    parse: typeof parse;
    get: typeof get;
};

export { type InvalidTimeSignature, type TimeSignature, type TimeSignatureLiteral, type ValidTimeSignature, _default as default, get, names, parse };
