import type { BaseLayout, RectTuple, Rectangle, SerializedLayout } from './BaseLayout';
export interface Layout {
    minX: number;
    minY: number;
    maxX: number;
    maxY: number;
    name: string;
}
export default class PrecomputedLayout<T> implements BaseLayout<T> {
    private rectangles;
    private totalHeight;
    maxHeightReached: boolean;
    private rbush;
    constructor({ rectangles, totalHeight, maxHeightReached }: SerializedLayout);
    addRect(id: string): number;
    getRectangles(): Map<string, RectTuple>;
    getTotalHeight(): number;
    collides(_rect: Rectangle<T>, _top: number): boolean;
    getByCoord(x: number, y: number): string | undefined;
    getByID(id: string): RectTuple | undefined;
    addRectToBitmap(_rect: Rectangle<T>, _data: Record<string, T>): void;
    discardRange(_left: number, _right: number): void;
    serializeRegion(_region: {
        start: number;
        end: number;
    }): SerializedLayout;
    toJSON(): SerializedLayout;
}
