import { Point } from '..'; import { PointPair } from '../math/geometry/pointPair'; import { PointPairMap } from './pointPairMap'; import { PointSet } from './PointSet'; export declare function substractSets(a: Set, b: Set): Set; export declare function substractPointSets(a: PointSet, b: PointSet): PointSet; export declare function uniteSets(a: Set, b: Set): Set; export declare function addRange(array: Array, addedIterable: Iterable): void; export declare function setIntersection(a: Set, b: Set): Set; export declare function setIntersectionOfArray(arr: Set[]): Set; export declare function insertRange(collection: Set, addedArray: Iterable): void; export declare function setsAreEqual(a: Set, b: Set): boolean; /** return the concatenated array of items */ export declare function flattenArray(arr: ReadonlyArray, callback: (elem: T) => Iterable): U[]; /** adds val to map.get(key) if the key exists, otherwise creates the key pair and * executes the former instruction */ export declare function addToMapOfSets(map: Map>, key: K, val: V): void; export declare function addToMapOfArrays(map: Map>, key: K, val: V): void; export declare function addToPointPairMap(map: PointPairMap>, key: PointPair, val: V): void; export declare function addToPointMapTuple(map: PointPairMap>, key: [Point, Point], val: V): void; export declare function removeFromPointPairMap(map: PointPairMap>, key: PointPair, val: V): void; export declare function removeFromPointPairMapTuple(map: PointPairMap>, key: [Point, Point], val: V): void; export declare function removeFromArray(arr: T[], OverlapRemovalNode: T): void;