/********************************************************************************
 * Copyright (c) 2024 EclipseSource and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { GModelElement, GModelElementBuilder } from './gmodel-element';
export declare const GResizable: unique symbol;
export interface GResizable {
    resizeLocations?: GResizeLocation[];
    [GResizable]: boolean;
}
export declare function isGResizable<G extends GModelElement>(element: G): element is G & GResizable;
export type GResizableBuilder<G extends GModelElement = GModelElement> = GModelElementBuilder<G & GResizable>;
export declare namespace GResizableBuilder {
    function resizeLocations<B extends GResizableBuilder>(builder: B, resizeLocations?: GResizeLocation[]): B;
}
export declare enum GResizeLocation {
    TopLeft = "top-left",
    Top = "top",
    TopRight = "top-right",
    Right = "right",
    BottomRight = "bottom-right",
    Bottom = "bottom",
    BottomLeft = "bottom-left",
    Left = "left"
}
export declare namespace GResizeLocation {
    const CORNERS: GResizeLocation[];
    const CROSS: GResizeLocation[];
    const ALL: GResizeLocation[];
}
//# sourceMappingURL=gresizable.d.ts.map