import { CssTilemapRenderer } from "../render/CssTilemapRenderer";
/**
 * collision map with tilemap for grid system
 * there is limitation of tilemap size
 *
 * this component will auto generate collision map from tilemap
 *
 * coordinate system is row column (positive x is right, positive y is down)
 *
 * important: grid position data is stored as string ("x_y" format)
 * so this component might not work properly if this component's gameObject.position is not integer
 */
export declare class CssCollideTilemapRenderer extends CssTilemapRenderer {
    private readonly _collideMap;
    private _collideEnabled;
    onEnable(): void;
    onDisable(): void;
    /**
     * draw tile at position. collide info will be automatically added
     * @param column column in tilemap
     * @param row row in tilemap
     * @param imageIndex index of image in imageSources
     * @param atlasIndex index of atlas in imageSources
     * @returns
     */
    drawTile(column: number, row: number, imageIndex: number, atlasIndex?: number): void;
    /**
     * draw tile from two dimensional array. collide info will be automatically added
     *
     * array left upper corner is (0, 0) in tilemap
     * @param array array of image index. { i: 0, a: 1 } means imageSources[0] in atlas[1]
     * @param xOffset array x offset, if you want to add tile from array[1][3] to (2, 3) you should set xOffset = 1
     * @param yOffset array y offset, if you want to add tile from array[3][1] to (3, 2) you should set yOffset = 1
     * @returns
     */
    drawTileFromTwoDimensionalArray(array: ({
        i: number;
        a: number;
    } | null)[][], columnOffset: number, rowOffset: number): void;
    /**
     * clear tile at position. collide info will be automatically removed
     * @param column column in tilemap
     * @param row row in tilemap
     * @returns
     */
    clearTile(column: number, row: number): void;
    /**
     * add collider at position
     * @param column column in tilemap
     * @param row row in tilemap
     * @returns
     */
    addCollider(column: number, row: number): void;
    /**
     * query that collides at position
     * @param x world position x
     * @param y world position y
     * @param width aabb collision width
     * @param height aabb collision height
     * @returns
     */
    checkCollision(x: number, y: number, width: number, height: number): boolean;
}
