import type { BaseLayout, SerializedLayout } from './BaseLayout';
export default class MultiLayout<SUB_LAYOUT_CLASS extends BaseLayout<T>, T> {
    SubLayoutClass: new (...args: any[]) => SUB_LAYOUT_CLASS;
    subLayoutConstructorArgs: Record<string, any>;
    subLayouts: Map<string, SUB_LAYOUT_CLASS>;
    constructor(SubLayoutClass: new (...args: any[]) => SUB_LAYOUT_CLASS, subLayoutConstructorArgs?: Record<string, any>);
    getDataByID(id: string): unknown;
    getSublayout(layoutName: string): SUB_LAYOUT_CLASS;
    addRect(layoutName: string, id: string, left: number, right: number, height: number, data?: Record<string, T>): number | null;
    discardRange(layoutName: string, left: number, right: number): void | undefined;
    toJSON(): Record<string, SerializedLayout>;
}
