import { Direction } from '../../math/geometry/direction'; import { LineSegment } from '../../math/geometry/lineSegment'; import { Point } from '../../math/geometry/point'; import { Rectangle } from '../../math/geometry/rectangle'; import { SegmentBase } from '../visibility/SegmentBase'; import { VisibilityEdge } from '../visibility/VisibilityEdge'; import { VisibilityVertex } from '../visibility/VisibilityVertex'; import { ScanDirection } from './ScanDirection'; export declare class StaticGraphUtility { static EdgeDirectionVE(edge: VisibilityEdge): Direction; static EdgeDirectionVV(source: VisibilityVertex, target: VisibilityVertex): Direction; static GetEdgeEnd(edge: VisibilityEdge, dir: Direction): VisibilityVertex; static FindAdjacentVertex(vertex: VisibilityVertex, dir: Direction): VisibilityVertex; static FindAdjacentEdge(a: VisibilityVertex, dir: Direction): VisibilityEdge; static FindBendPointBetween(sourcePoint: Point, targetPoint: Point, finalEdgeDir: Direction): Point; static SegmentIntersectionPPP(first: Point, second: Point, from: Point): Point; static SegmentIntersectionSP(seg: SegmentBase, from: Point): Point; static SegmentsIntersection(first: SegmentBase, second: SegmentBase): Point; static SegmentsIntersectLL(first: LineSegment, second: LineSegment): Point; static IntervalsOverlapSS(first: SegmentBase, second: SegmentBase): boolean; static IntervalsOverlapPPPP(start1: Point, end1: Point, start2: Point, end2: Point): boolean; static IntervalsAreCollinear(start1: Point, end1: Point, start2: Point, end2: Point): boolean; static IntervalsAreSame(start1: Point, end1: Point, start2: Point, end2: Point): boolean; static IntervalsIntersect(firstStart: Point, firstEnd: Point, secondStart: Point, secondEnd: Point): Point; static SegmentIntersectionEP(edge: VisibilityEdge, from: Point): Point; static PointIsOnSegmentPPP(first: Point, second: Point, test: Point): boolean; static PointIsOnSegmentSP(seg: SegmentBase, test: Point): boolean; static IsVerticalD(dir: Direction): boolean; static IsVerticalE(edge: VisibilityEdge): boolean; static IsVerticalPP(first: Point, second: Point): boolean; static IsVertical(seg: LineSegment): boolean; static IsAscending(dir: Direction): boolean; static Slope(start: Point, end: Point, scanDir: ScanDirection): number; static SortAscending(a: Point, b: Point): [Point, Point]; static RectangleBorderIntersect(boundingBox: Rectangle, point: Point, dir: Direction): Point; static GetRectangleBound(rect: Rectangle, dir: Direction): number; static RectangleInteriorsIntersect(a: Rectangle, b: Rectangle): boolean; static PointIsInRectangleInterior(point: Point, rect: Rectangle): boolean; }