import { NoteInfo } from './jianpu_info';
import { MeasuresInfo } from './measure_info';
export type JianpuBlockMap = Map<number, JianpuBlock>;
export interface JianpuNote extends NoteInfo {
    jianpuNumber: number;
    octaveDot: number;
    accidental: number;
    tiedFrom?: JianpuNote;
    tiedTo?: JianpuNote;
}
export declare function splitJianpuNote(jianpuNote: JianpuNote, quarters: number): JianpuNote | null;
export declare class JianpuBlock {
    start: number;
    length: number;
    notes: JianpuNote[];
    measureNumber: number;
    durationLines?: number;
    augmentationDots?: number;
    augmentationDash?: boolean;
    beatBegin?: boolean;
    beatEnd?: boolean;
    isTieStart?: boolean;
    isTieEnd?: boolean;
    constructor(start?: number, length?: number, notes?: JianpuNote[], measureNumber?: number);
    addNote(jianpuNote: JianpuNote): boolean;
    split(quarters: number, measuresInfo: MeasuresInfo): JianpuBlock | null;
    splitToBeat(measuresInfo: MeasuresInfo): JianpuBlock | null;
    calculateRenderProperties(measuresInfo: MeasuresInfo): void;
    splitToStandardSymbol(measuresInfo: MeasuresInfo): JianpuBlock | null;
    mergeToMap(map: JianpuBlockMap): void;
    isMeasureBeginning(): boolean;
}
