import { JianpuInfo, TempoInfo, TimeSignatureInfo, KeySignatureInfo } from './jianpu_info';
export interface MeasureInfo {
    start: number;
    measureNumber: number;
    measureLength: number;
    tempo: TempoInfo;
    keySignature: KeySignatureInfo;
    timeSignature: TimeSignatureInfo;
    tempoChange?: boolean;
    keyChange?: boolean;
    timeChange?: boolean;
}
export declare class MeasuresInfo {
    private measuresInfo;
    allowDottedRests?: boolean;
    constructor(jianpuInfo: JianpuInfo, lastQ: number);
    private findIndex;
    measureNumberAtQ(start: number): number;
    measureLengthAtQ(start: number): number;
    tempoAtQ(start: number, onlyChanges?: boolean): number;
    keySignatureAtQ(start: number, onlyChanges?: boolean): number;
    timeSignatureAtQ(start: number, onlyChanges?: boolean): TimeSignatureInfo | null;
    quartersToTime(quarters: number, startTime: number): number;
    timeToQuarters(time: number, startTime: number): number;
    isBeatStart(time: number): boolean;
}
