import type { BaseLayout, RectTuple, Rectangle, SerializedLayout } from './BaseLayout';
export default class GranularRectLayout<T> implements BaseLayout<T> {
    private pitchX;
    private pitchY;
    private hardRowLimit;
    private bitmap;
    private rectangles;
    maxHeightReached: boolean;
    private maxHeight;
    private displayMode;
    private pTotalHeight;
    constructor({ pitchX, pitchY, maxHeight, hardRowLimit, displayMode, }?: {
        pitchX?: number;
        pitchY?: number;
        maxHeight?: number;
        displayMode?: string;
        hardRowLimit?: number;
    });
    addRect(id: string, left: number, right: number, height: number, data?: T): number | null;
    collides(rect: Rectangle<T>, top: number): boolean;
    private autovivifyRow;
    addRectToBitmap(rect: Rectangle<T>): void;
    discardRange(left: number, right: number): void;
    hasSeen(id: string): boolean;
    getByCoord(x: number, y: number): string | Record<string, T> | undefined;
    getByID(id: string): RectTuple | undefined;
    getDataByID(id: string): T | undefined;
    cleanup(): void;
    getTotalHeight(): number;
    get totalHeight(): number;
    getRectangles(): Map<string, RectTuple>;
    serializeRegion(region: {
        start: number;
        end: number;
    }): SerializedLayout;
    toJSON(): SerializedLayout;
}
