export interface ISize {
    width: number;
    height: number;
}
export interface IRect {
    x: number;
    y: number;
    width: number;
    height: number;
    data: ISize;
}
export interface INode {
    x: number;
    y: number;
    width: number;
    height: number;
    children?: INode[];
}
export declare class MultiBinPacker {
    readonly maxWidth: number;
    readonly maxHeight: number;
    readonly padding?: number;
    readonly bins: BinaryTreeBin[];
    readonly oversizedElements: ISize[];
    constructor(maxWidth: number, maxHeight: number, padding?: number);
    add(data: ISize): void;
    private sort(rects);
    addArray(rects: ISize[]): void;
}
export declare class BinaryTreeBin {
    private maxWidth;
    private maxHeight;
    private padding;
    private rootNode;
    width: number;
    height: number;
    rects: IRect[];
    constructor(maxWidth: number, maxHeight: number, padding?: number);
    add(data: ISize): IRect | undefined;
    private findNode(node, width, height);
    private createChildren(node, width, height);
}
