import { Position } from '@xyflow/react';
import { CSSProperties } from 'react';

/**
 * Calculate every value needed to position the edge label
 * Some scenarios:
 * - If the edge is a tree link, the label will be positioned in above the target node (use target node position)
 * - If the edge is a loop link, the label will be positioned in the middle of the edge
 */
export declare const getEdgeLabelPosition: ({ isLoopEdge, labelItems, labelOffset, offset, sourcePosition, sourceX, sourceY, targetPosition, targetX, targetY, }: {
    isLoopEdge?: boolean;
    labelItems: number;
    labelOffset?: {
        x?: number;
        y?: number;
    };
    offset?: number;
    sourcePosition: Position | undefined;
    sourceX: number;
    sourceY: number;
    targetPosition: Position | undefined;
    targetX: number;
    targetY: number;
}) => {
    edgePath: string;
    labelX: number;
    labelY: number;
    direction: CSSProperties["flexDirection"];
    isAbsoluteLabel: boolean;
    labelPositions: {
        x: number;
        y: number;
    }[];
    labelTransform: string;
    rect: {
        bottom: number;
        left: number;
        right: number;
        top: number;
    };
};
