import * as Point from '../point';
/**
 * Immutable Set like interface of points
 */
export declare class PointSet {
    private set;
    private constructor();
    /** Creates a new PointSet instance from an array-like or iterable object */
    static from(points: Iterable<Point.Point>): PointSet;
    /** Returns a boolean asserting whether an point is present with the given value in the Set object or not */
    has(point: Point.Point): boolean;
    /** Returns the number of points in a PointSet object */
    get size(): number;
    /** Add the given point to given set */
    add(point: Point.Point): PointSet;
    /** Remove the given point from the given set */
    delete(point: Point.Point): PointSet;
    /** Returns a new PointSet with points common to the set and other */
    difference(other: PointSet): PointSet;
    /** Returns a new PointSet with all points in both sets */
    union(other: PointSet): PointSet;
    /** Creates an iterator of points in the set */
    [Symbol.iterator](): Iterator<Point.Point>;
}
