export default TileGrid;
declare class TileGrid {
    /**
     *
     * @param {number} width
     * @param {number} height
     * @constructor
     */
    constructor(width: number, height: number);
    size: Vector2;
    /**
     *
     * @type {List<Rectangle>}
     */
    tiles: List<Rectangle>;
    /**
     *
     * @type {Vector1}
     */
    capacity: Vector1;
    /**
     *
     * @return {number}
     */
    computeTotalTileArea(): number;
    /**
     *
     * @param {Rectangle} rect
     * @returns {Array<Rectangle>}
     */
    getOverlappingTiles(rect: Rectangle): Array<Rectangle>;
    /**
     *
     * @param {Rectangle[]} result tiles will be added here
     * @param {number} x
     * @param {number} y
     * @param {number} w
     * @param {number} h
     * @returns {number} number of overlapping tiles found
     */
    getOverlappingTilesRaw(result: Rectangle[], x: number, y: number, w: number, h: number): number;
    /**
     *
     * @param {Rectangle} tile
     * @returns {boolean}
     */
    contains(tile: Rectangle): boolean;
    /**
     * Look up a slot for a rectangular tile of a given size
     * @param {Vector2} result
     * @param {number} w
     * @param {number} h
     * @returns {boolean}
     */
    findEmptySlotFor(result: Vector2, w: number, h: number): boolean;
    /**
     *
     * @param {number} tileWidth
     * @param {number} tileHeight
     * @param {function(x:number, y:number):*} visitor
     */
    computePossibleTilePositions(tileWidth: number, tileHeight: number, visitor: any): void;
    /**
     *
     * @param {Rectangle} tile
     */
    add(tile: Rectangle): void;
    /**
     *
     * @param {Array.<Rectangle>} tiles
     */
    addAll(tiles: Array<Rectangle>): void;
}
import Vector2 from '../../../core/geom/Vector2.js';
import List from '../../../core/collection/list/List.js';
import Vector1 from "../../../core/geom/Vector1.js";
//# sourceMappingURL=TileGrid.d.ts.map