import { Container, Spritesheet } from "pixi.js";
import { FloorFurniture } from "./FloorFurniture";
import { WallFurniture } from "./WallFurniture";
import { IFurnitureProperty } from "../../interfaces/Furniture.interface";
import { FurnitureVisualization } from "./visualizations/FurnitureVisualization";
/**
 * FurnitureView class that manage all the rendering part of the furniture.
 *
 * @class
 * @memberof Scuti
 */
export declare class FurnitureView extends Container {
    /**
     * The furniture instance that we want to render.
     *
     * @member {FloorFurniture | WallFurniture}
     * @private
     */
    private _furniture;
    /**
     * A list containing all the furnitures parts.
     *
     * @member {FurniturePart[]}
     * @private
     */
    private _parts;
    /**
     * The spritesheet of the furniture.
     *
     * @member {Spritesheet}
     * @private
     */
    private _spritesheet;
    /**
     * The furniture property.
     *
     * @member {IFurnitureProperty}
     * @private
     */
    private _property;
    /**
     * The furniture visualization.
     *
     * @member {FurnitureVisualization}
     * @private
     */
    private _visualization;
    /**
     * @param {FloorFurniture | WallFurniture} [furniture] - The furniture instance to render.
     */
    constructor(furniture: FloorFurniture | WallFurniture);
    /**
     * Initialise furniture visualization.
     *
     * @return {void}
     * @private
     */
    private _initialiseVisualization;
    /**
     * Draw the furniture visualization with all the parts.
     *
     * @return {void}
     * @private
     */
    private _draw;
    /**
     * Destroy all the furniture parts.
     *
     * @return {void}
     * @private
     */
    private _destroyParts;
    /**
     * Rerender all the room visualization.
     *
     * @return {void}
     * @private
     */
    update(): void;
    /**
     * The method is called when the room animation ticker tick.
     *
     * @return {void}
     * @private
     */
    tick(): void;
    /**
     * Create a furniture part by it's layer id.
     *
     * @param {number} [layer] - The layer id that we want to render.
     * @return {void}
     * @private
     */
    private _createPart;
    /**
     * Create the furniture placeholder while the spritesheet is loading.
     *
     * @return {void}
     * @private
     */
    private _createPlaceholder;
    /**
     * Create the furniture shadow.
     *
     * @return {void}
     * @private
     */
    private _createShadow;
    /**
     * Reference to the furniture spritesheet.
     *
     * @member {Spritesheet}
     * @readonly
     * @public
     */
    get spritesheet(): Spritesheet;
    /**
     * Reference to the furniture properties.
     *
     * @member {IFurnitureProperty}
     * @readonly
     * @public
     */
    get property(): IFurnitureProperty;
    /**
     * Reference to the furniture visualization.
     *
     * @member {FurnitureVisualization}
     * @readonly
     * @public
     */
    get visualization(): FurnitureVisualization;
}
