import { Ref } from 'vue';
import { Reactive } from '../../common/common';
import { Edges, LinePosition, Nodes, Position } from '../../common/types';
import { Configs, EdgeKeepOrderType } from '../../common/configs';
import { EdgeGroupStates, EdgeLayoutPoint } from '../../models/edge';
/**
 * Make the states for edge group.
 * @param nodes nodes
 * @param edges edges
 * @param configs configs
 * @returns the states object for edge group
 */
export declare function makeEdgeGroupStates(nodes: Ref<Nodes>, edges: Ref<Edges>, configs: Readonly<Configs>): Reactive<EdgeGroupStates>;
/**
 * Calculate the edge position by applying a shift.
 * @param p relative layout information of edges
 * @param isSummarized summarize or not
 * @param source position of source node
 * @param target position of target node
 * @param scale scale factor
 * @param keepOrder edge positional type config
 * @returns the edge position by applying a shift
 */
export declare function calculateEdgeShiftedPosition(p: EdgeLayoutPoint | undefined, isSummarized: boolean, source: Position, target: Position, scale: number, keepOrder: EdgeKeepOrderType): LinePosition;
