import { AttachPointType, MathTypes } from "@intelligentgraphics/ig.gfx.core";
/** Enum for describing snapping modes */
export declare enum SnapMode {
    /** No snapping detected. */
    None = 0,
    /** Semantic snapping based on matching attachment points, for instance. */
    Strong = 1,
    /** Geometric snapping based on bounding boxes, for instance. */
    Weak = 2,
    /** Snapping to a wall */
    Wall = 3,
    /** Snapping is currently disabled. */
    Disabled = 4
}
export declare enum NeighborType {
    None = 0,
    Top = 1,
    Bottom = 2,
    Left = 3,
    Right = 4,
    Front = 5,
    Back = 6,
    Snap = 7
}
export declare namespace NeighborType {
    function getAsType(type: AttachPointType): NeighborType;
    function getAsString(type: NeighborType): AttachPointType;
    function allValidNeighborTypes(): NeighborType[];
    function getOpposite(type: NeighborType): NeighborType;
}
/** A class for capturing a state that a component might be in. Note that this does not have to be the state
 * that the component resides in right now.
 */
export declare type ComponentState = {
    /** The Id of the component */
    id: string;
    transformation?: MathTypes.Transformation;
};
export declare enum EStage {
    None = 0,
    Start = 1,
    Motion = 2,
    End = 3
}
export declare enum EMoveMode {
    Translate = 1,
    Rotate = 2
}
