import * as Core from "@intelligentgraphics/ig.gfx.core";
export declare type BlueprintIGXCBuilderPoint = {
    x: number;
    y: number;
    id: string;
};
export interface BlueprintIGXCBuilderParams {
    wallHeight?: number;
    wallThickness?: number;
    wallFrontMaterial: string;
    wallBackMaterial: string;
    floorMaterial: string;
}
export declare class BlueprintIGXCBuilder {
    /** The scene that will be returned by the build method */
    private scene;
    /** The corners of the blueprint scene */
    private corners;
    /** The walls of the blueprint scene. Each contains the ids of the corners that belong to the wall */
    private walls;
    /** The rooms of the scene. Contains the ids of the points that belong to the room. */
    private rooms;
    /** The height of all walls */
    private wallHeight;
    /** The thickness of all walls */
    private wallThickness;
    private wallFrontMaterial;
    private wallBackMaterial;
    private floorMaterial;
    constructor({ wallHeight, wallThickness, wallBackMaterial, wallFrontMaterial, floorMaterial, }: BlueprintIGXCBuilderParams);
    /**
     * Builds the Scene from the given corners, walls and rooms.
     * @returns {Core.IGXC.Scene}
     */
    build(): Core.IGXC.Scene;
    /**
     * Add the categories to the scene object
     */
    private makeCategories;
    /**
     * Add the Objects to the scene
     */
    private makeObjects;
    /**
     * Creates the geometry parameters that contain the information about the corners and walls
     * @returns
     */
    private getGeometryParameters;
    /**
     * Add a corner to the configuration
     * @param point contains the coordinates and id of the point
     */
    addCorner(point: BlueprintIGXCBuilderPoint): void;
    /**
     * Add a wall between the two points
     * @param firstId: the id of the first point
     * @param secondId: the id of the second point
     */
    addWall(firstId: string, secondId: string, frontMaterial?: string, backMaterial?: string): void;
    /**
     * Add a room containing the points
     * @param pointIds an array of the corner points of the room
     */
    addRoom(pointIds: string[], floorMaterial?: string): void;
}
