import { JianpuInfo, NoteInfo } from './jianpu_info';
import { JianpuModel } from './jianpu_model';
export declare enum ScrollType {
    PAGE = 0,
    NOTE = 1,
    BAR = 2
}
export interface JianpuSVGRenderConfig {
    noteHeight?: number;
    noteSpacingFactor?: number;
    pixelsPerTimeStep?: number;
    noteColor?: string;
    activeNoteColor?: string;
    defaultKey?: number;
    scrollType?: ScrollType;
    fontFamily?: string;
    width?: number;
    height?: number;
}
export declare class JianpuSVGRender {
    jianpuInfo: JianpuInfo;
    jianpuModel: JianpuModel;
    private config;
    private height;
    private width;
    private parentElement;
    private div;
    private mainSVG;
    private mainG;
    private musicG;
    private signaturesG;
    private overlaySVG;
    private overlayG;
    private signaturesBlinking;
    private lastKnownScrollLeft;
    private isScrolling;
    private currentKey;
    private currentTimeSignature;
    private playingNotes;
    private lastRenderedQ;
    private estimatedNoteWidth;
    private numberFontSize;
    private smallFontSize;
    private yBaseline;
    private parseColorString;
    constructor(score: JianpuInfo, config: JianpuSVGRenderConfig, div: HTMLDivElement);
    clear(): void;
    private updateLayout;
    redraw(activeNote?: NoteInfo, scrollIntoView?: boolean): number;
    private drawJianpuBlock;
    private drawNotes;
    private drawRest;
    private drawSignatures;
    private updateCurrentKey;
    private updateCurrentTimeSignature;
    private handleScrollEvent;
    private scrollIntoViewIfNeeded;
    private updateOverlaySignaturesForScroll;
    private pixelsToTime;
}
