import * as Core from "@intelligentgraphics/ig.gfx.core";
import { ComponentState } from "../Types";
/** This class is responsible for creating the world coordinate points of a component, given its state. */
export default class SnapPoints {
    /** The strong neighbor snap points. Contains points of type "Top", "Bottom", "Left" and "Right" */
    strongNeighborSnapPoints: Core.Point[];
    /** The strong child snapping points. Contains points of type "Child" and "Origin" */
    strongChildPoints: Core.Point[];
    /** The weak snap points, used for bounding box snapping */
    weakSnapPoints: Core.Point[];
    private includeAllPoints;
    /**
     * The constructor
     * @param state The state from which to calculate the world coordinates of the points
     * @param includeAllPoints whether to included the points of direct neighbors
     */
    constructor(state: ComponentState, includeAllPoints?: boolean);
    /**
     * Sets the weak snap points from the given state.
     * @param state The state of the component
     */
    private makeWeakPoints;
    /**
     * Sets the enabled strong snap points of the component, and adapts the to the given state
     * Note that if there is already a neighbor attached at a point, the point will be removed
     * @param state The state of the component
     */
    private makeStrongNeighborPoints;
    /**
     * Sets the strong child points.
     * @param state
     */
    private makeStrongChildPoints;
}
