/**
 * A {@link CoordTopological} for assigning coordinates to a topological
 * layering.
 *
 * @packageDocumentation
 */
import type { Coord } from ".";
/**
 * a {@link Coord} for positioning edges of a topological layout
 *
 * This operator can position nodes similar to {@link coordSimplex} or {@link
 * coordQuad} but is tailored to topological layouts.
 *
 * Create with {@link coordTopological}.
 */
export interface CoordTopological extends Coord<unknown, unknown> {
    /**
     * set whether to use straight edges
     *
     * If using straight edges, they'll tend to go straight down, where as curved
     * edges will have gentle slopes. `true` corresponds to {@link coordSimplex}
     * while `false` corresponds to {@link coordQuad}.
     *
     * (default: `true`)
     */
    straight(val: boolean): CoordTopological;
    /** get the current simplex setting. */
    straight(): boolean;
    /** @internal flag indicating that this is built in to d3dag and shouldn't error in specific instances */
    readonly d3dagBuiltin: true;
}
/**
 * create a new {@link CoordTopological}
 *
 * The topological coordinate assignment operator requires a topological
 * layering created by {@link layeringTopological}. It assigns all real nodes
 * the same x coordinate, and curves the links around the column of nodes.
 *
 * It may also be worth considering {@link zherebko} as a layout as it's
 * created entirely for layouts like this.
 *
 * @example
 *
 * ```ts
 * const layout = sugiyama()
 *   .layering(layeringTopological())
 *   .coord(coordTopological());
 * ```
 */
export declare function coordTopological(...args: never[]): CoordTopological;
