import { Vector } from '../../diagram/geometry';
import { EntityElement, RelationLink } from '../../editor/dataElements';
export interface DragEditLayerProps {
    operation: DragEditOperation;
    onFinishEditing: () => void;
}
/**
 * Describes a graph authoring operation from dragging a link endpoint.
 */
export type DragEditOperation = DragEditConnect | DragEditMoveEndpoint;
/**
 * Graph authoring operation to connect an entity element with some other element.
 */
export interface DragEditConnect {
    /**
     * Graph authoring drag operation type.
     */
    readonly mode: 'connect';
    /**
     * Target entity element to drag a relation link from.
     */
    readonly source: EntityElement;
    /**
     * Initial position for the dragged link endpoint on paper.
     */
    readonly point: Vector;
}
/**
 * Graph authoring operation to move relation link endpoint to another element.
 */
export interface DragEditMoveEndpoint {
    /**
     * Graph authoring drag operation type.
     */
    readonly mode: 'moveSource' | 'moveTarget';
    /**
     * Target relation link to drag an endpoint of.
     */
    readonly link: RelationLink;
    /**
     * Initial position for the dragged link endpoint on paper.
     */
    readonly point: Vector;
}
export declare function DragEditLayer(props: DragEditLayerProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=dragEditLayer.d.ts.map