import { Container } from "pixi.js";
import { Room } from "../Room";
import { IInteractionEvent } from "../../../interfaces/Interaction.interface";
import { Tile } from "../parts/Tile";
import { Stair } from "../parts/Stair";
import { IPosition2D } from "../../../interfaces/Room.interface";
/**
 * RoomTileLayer class that manage all the room tiles.
 *
 * @class
 * @memberof Scuti
 */
export declare class RoomTileLayer extends Container {
    /**
     * The room instance that will be managed by the camera.
     *
     * @member {Room}
     * @private
     */
    private readonly _room;
    /**
     * The room tiles interaction manager.
     *
     * @member {InteractionManager}
     * @private
     */
    private _interactionManager;
    /**
     * @param {Room} [room] - The room instance that we want to visualize.
     */
    constructor(room: Room);
    /**
     * Return the tile or the stair at the specified screen position.
     *
     * @param {IPosition2D} [position] - The screen position.
     * @return {Tile | Stair}
     * @public
     */
    getTileFromGlobal(position: IPosition2D): Tile | Stair;
    /**
     * Reference to the pointer down event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerDown(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerDown(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer up event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerUp(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerUp(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer move event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerMove(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerMove(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer out event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerOut(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerOut(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer over event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onPointerOver(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onPointerOver(value: (event: IInteractionEvent) => void);
    /**
     * Reference to the pointer double click event.
     *
     * @member {(event: IInteractionEvent) => void}
     * @readonly
     * @public
     */
    get onDoubleClick(): (event: IInteractionEvent) => void;
    /**
     * Update the event function that will be executed.
     *
     * @param {(event: IInteractionEvent) => void} [value] - The event function that will be executed.
     * @public
     */
    set onDoubleClick(value: (event: IInteractionEvent) => void);
}
