import { BoundingBox, SnappingRegions, BoxCoordinates, Vertex, XYCoordinates, MoveRequest, Edges, SharedEdges, SharedCorners } from "./types";
declare class DockableBox {
    left: number;
    top: number;
    right: number;
    bottom: number;
    width: number;
    height: number;
    windowBoundingBox: BoundingBox;
    getVertices: (req: BoxCoordinates) => Vertex[];
    buffer: BoundingBox;
    innerBuffer: BoundingBox;
    monitor?: BoxCoordinates;
    resizeHandle: string | null;
    snappingRegions: SnappingRegions;
    bufferSize: number;
    constructor(bounds?: BoxCoordinates);
    /**
     * @function {function name}
     * @param  {type} format         {description}
     * @param  {type} includeCorners {description}
     * @return {type} {description}
     */
    getEdges(format: string, includeCorners?: number | boolean): Edges | BoundingBox[];
    getCorners(): Record<string, Vertex>;
    /**
     * @function {function name}
     * @param  {type} point          {description}
     * @param  {type} includeCorners {description}
     * @return {type} {description}
     */
    pointIsOnBoundingBox(point: XYCoordinates, includeCorners?: boolean): boolean;
    /**
     * @function {function name}
     * @param  {type} corner {description}
     * @return {type} {description}
     */
    getPointByVertex(corner: string): XYCoordinates;
    /**
     * @function {function name}
     * @param  {type} point     {description}
     * @return {type} {description}
     */
    getEdgeByPoint(point: XYCoordinates): string;
    /**
     * @function {function name}
     * @param  {type} point     {description}
     * @param  {type} tolerance {description}
     * @return {type} {description}
     */
    getVertexByPoint(point: XYCoordinates, tolerance?: number): string | null;
    /**
     * @function getSharedEdges Determines if another window has edges to which our window may snap/dock
     * @param  {type} win2 {description}		* @param  {Window} win2 Window proxy (movement object) of other window to which our window may snap/dock
     * @return {type} {description}		* @param  {number} tolerance Buffer region around edges to determine region for snap / dock
     * @return {object} Object describing shared edges, with boolean top, bottom, left, and right properties
     */
    getSharedEdges(win2: BoxCoordinates, tolerance?: number): SharedEdges;
    /**
     * @function getSharedCorners Determines if another window has corners to which our window may snap/dock
     * @param  {type} win2 {description}		* @param  {Window} win2 Window proxy (movement object) of other window to which our window may snap/dock
     * @return {type} {description}		* @return {object} Object describing shared corners, including original vertices (topLeft, topRight, bottomRight, bottomLeft),
     *					and amended vertices (rightTop, rightBottom, leftTop, leftBottom) to indicate shared tops or bottoms on
     *					on the left or right.
     */
    getSharedCorners(win2: BoxCoordinates): SharedCorners;
    /**
     * @function {function name}
     * @return {type} {description}
     */
    getBounds(): BoxCoordinates;
    /**
     * @function {function name}
     * @param  {type} req {description}
     * @return {type} {description}
     */
    getCornerObject(req: any): Record<string, Vertex>;
    /**
     * @function {function name}
     * @param  {type} mouse {description}
     * @return {type} {description}
     */
    getGrabbedEdge(mouse: XYCoordinates): string | boolean;
    computeResizeHandleFromMove(request: MoveRequest): string | null;
    /**
     * @function {function name}
     * @param  {type} request {description}
     * @return {type} {description}
     */
    getResizeHandle(request: MoveRequest): string;
    /**
     * @function {function name}
     * @param  {type} bufferSize {description}
     * @return {type} {description}
     */
    setBuffer(bufferSize?: number): void;
    /**
     * @function {function name}
     * @return {type} {description}
     */
    setSnappingRegions(): void;
    sharesACornerWith(win: BoxCoordinates): boolean;
    /**
     * @function {function name}
     * @param  {type} win {description}
     * @return {type} {description}
     */
    sharesAnEdgeWith(win: BoxCoordinates): boolean;
    /**
     * @function {function name}
     * @param  {type} request {description}
     * @return {type} {description}
     */
    canSnapToWindow(request: MoveRequest): boolean;
}
export default DockableBox;
//# sourceMappingURL=dockableBox.d.ts.map