import { Point } from '../point';
import { PointSet } from './point-set';
/**
 * Immutable directed graph of points, where each point can have multiple
 * edges to other points.
 */
export declare class PointGraph {
    private forwards;
    private constructor();
    /** Creates a new PointGraph instance from an array-like or iterable object */
    static from(pairs: Iterable<[Point, PointSet]>): PointGraph;
    set(node: Point, edges: PointSet): PointGraph;
    get(node: Point): PointSet;
    getBackwards(node: Point): PointSet;
    getBackwardsRecursive(node: Point, visited?: PointSet): PointSet;
    hasCircularDependency(startPoint: Point): boolean;
    [Symbol.iterator](): Iterator<[Point, PointSet]>;
    /** Get the points in the graph in a breadth-first order */
    traverseBFSBackwards(): Generator<Point>;
}
