/**
 * AVL layout utilities for positioning atoms in composed diagrams.
 */
/** Distribute N points evenly around a ring.
 *  Handles edge cases: 1 state (centered), 2 states (horizontal). */
export declare function ringPositions(cx: number, cy: number, r: number, count: number, startAngle?: number): Array<{
    x: number;
    y: number;
    angle: number;
}>;
/** Create an SVG arc path between two angles on a circle. */
export declare function arcPath(cx: number, cy: number, r: number, startAngle: number, endAngle: number): string;
/** Distribute N points radially from a center. */
export declare function radialPositions(cx: number, cy: number, innerR: number, outerR: number, count: number, startAngle?: number): Array<{
    x1: number;
    y1: number;
    x2: number;
    y2: number;
    angle: number;
}>;
/** Simple grid layout: position items in columns and rows. */
export declare function gridPositions(startX: number, startY: number, cols: number, cellWidth: number, cellHeight: number, count: number): Array<{
    x: number;
    y: number;
    col: number;
    row: number;
}>;
/** Compute a quadratic bezier control point offset perpendicular to the line. */
export declare function curveControlPoint(x1: number, y1: number, x2: number, y2: number, offset: number): {
    cpx: number;
    cpy: number;
};
