export interface ICollisionBox {
    x1: number;
    y1: number;
    x2: number;
    y2: number;
    anchorPointX: number;
    anchorPointY: number;
}
/**
 * 基于网格实现文本避让，大幅提升包围盒碰撞检测效率
 * @see https://zhuanlan.zhihu.com/p/74373214
 */
export default class CollisionIndex {
    private width;
    private height;
    private grid;
    private viewportPadding;
    private screenRightBoundary;
    private screenBottomBoundary;
    private gridRightBoundary;
    private gridBottomBoundary;
    constructor(width: number, height: number);
    placeCollisionBox(collisionBox: ICollisionBox): {
        box: number[];
    };
    insertCollisionBox(box: number[], featureIndex: number): void;
    /**
     * 后续碰撞检测都需要投影到 viewport 坐标系
     * @param {THREE.Matrix4} mvpMatrix mvp矩阵
     * @param {number} x P20 平面坐标X
     * @param {number} y P20 平面坐标Y
     * @return {Point} projectedPoint
     */
    project(mvpMatrix: number[], x: number, y: number): {
        x: number;
        y: number;
    };
    /**
     * 判断包围盒是否在整个网格内，需要加上 buffer
     * @param {number} x1 x1
     * @param {number} y1 y1
     * @param {number} x2 x2
     * @param {number} y2 y2
     * @return {Point} isInside
     */
    isInsideGrid(x1: number, y1: number, x2: number, y2: number): boolean;
}
