/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { AssociationView } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_AssociationView.js';
import type { ClassView } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_ClassView.js';
import type { Diagram } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_Diagram.js';
import type { GeneralizationView } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_GeneralizationView.js';
import type { PropertyView } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_PropertyView.js';
import type { RelationshipViewEnd } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_RelationshipViewEnd.js';
import type { RelationshipView } from '../../graph/metamodel/pure/packageableElements/diagram/DSL_Diagram_RelationshipView.js';
import type { Point } from '../../graph/metamodel/pure/packageableElements/diagram/geometry/DSL_Diagram_Point.js';
import type { PositionedRectangle } from '../../graph/metamodel/pure/packageableElements/diagram/geometry/DSL_Diagram_PositionedRectangle.js';
import type { Rectangle } from '../../graph/metamodel/pure/packageableElements/diagram/geometry/DSL_Diagram_Rectangle.js';
export declare const diagram_setClassViews: (diagram: Diagram, val: ClassView[]) => void;
export declare const diagram_addClassView: (diagram: Diagram, val: ClassView) => void;
export declare const diagram_deleteClassView: (diagram: Diagram, val: ClassView) => void;
export declare const diagram_setAssociationViews: (diagram: Diagram, val: AssociationView[]) => void;
export declare const diagram_deleteAssociationView: (diagram: Diagram, val: AssociationView) => void;
export declare const diagram_setGeneralizationViews: (diagram: Diagram, val: GeneralizationView[]) => void;
export declare const diagram_addGeneralizationView: (diagram: Diagram, val: GeneralizationView) => void;
export declare const diagram_deleteGeneralizationView: (diagram: Diagram, val: GeneralizationView) => void;
export declare const diagram_setPropertyViews: (diagram: Diagram, val: PropertyView[]) => void;
export declare const diagram_addPropertyView: (diagram: Diagram, val: PropertyView) => void;
export declare const diagram_deletePropertyView: (diagram: Diagram, val: PropertyView) => void;
export declare const classView_setHideProperties: (cv: ClassView, val: boolean) => void;
export declare const classView_setHideStereotypes: (cv: ClassView, val: boolean) => void;
export declare const classView_setHideTaggedValues: (cv: ClassView, val: boolean) => void;
export declare const relationshipEdgeView_setOffsetX: (r: RelationshipViewEnd, val: number) => void;
export declare const relationshipEdgeView_setOffsetY: (r: RelationshipViewEnd, val: number) => void;
export declare const relationshipView_changePoint: (v: RelationshipView, val: Point, newVal: Point) => void;
export declare const relationshipView_simplifyPath: (relationshipView: RelationshipView) => void;
export declare const findOrBuildPoint: (relationshipView: RelationshipView, x: number, y: number, zoom: number, allowChange: boolean) => Point | undefined;
export declare const relationshipView_setPath: (relationshipView: RelationshipView, val: Point[]) => void;
export declare const positionedRectangle_setRectangle: (pR: PositionedRectangle, value: Rectangle) => void;
export declare const positionedRectangle_setPosition: (pR: PositionedRectangle, value: Point) => void;
/**
 * NOTE: Having `position` and `rectangle` as observables compromises the performance of diagram
 * so we want to have a way to refresh the hash for change detection to pick up new hash when we resize
 * the class view box or move it.
 *
 * We should re-consider the usefulness of this method, maybe it's more worthwhile to recompute hash
 * for the whole diagram instead?
 */
export declare const positionedRectangle_forceRefreshHash: (pR: PositionedRectangle) => void;
//# sourceMappingURL=DSL_Diagram_GraphModifierHelper.d.ts.map