/**
 * @file 模型布局算法
 */
import { Rect } from './Rect';
type PositionPlacement = 'left-top' | 'left-middle' | 'left-bottom' | 'center-top' | 'center-middle' | 'center-bottom' | 'right-top' | 'right-middle' | 'right-bottom';
export declare class Packer {
    width: number;
    height: number;
    x: number;
    y: number;
    spaces: Array<Rect>;
    center: Rect;
    constructor(width?: number, height?: number, x?: number, y?: number);
    setCenterRect(rect: Rect): void;
    reset(): void;
    packWithGutter(rect: Rect, position?: PositionPlacement | ((rect: Rect, space: Rect) => PositionPlacement), gutter?: number): boolean;
    pack(rect: Rect, position?: PositionPlacement | ((rect: Rect, space: Rect) => PositionPlacement)): boolean;
    placeInSpace(rect: Rect, space: Rect, position?: PositionPlacement | ((rect: Rect, space: Rect) => PositionPlacement)): void;
    placed(rect: Rect, gutter?: number): void;
    mergeSortSpaces(): void;
    static getDistance(x1: number, y1: number, x2: number, y2: number): number;
    static mergeRects(rects: Array<Rect>): Rect[];
}
export {};
