import { Point } from '../..'; import { Polyline } from '../../math/geometry'; import { PolylinePoint } from '../../math/geometry/polylinePoint'; import { BinaryHeapWithComparer } from '../../structs/BinaryHeapWithComparer'; import { RBNode } from '../../math/RBTree/rbNode'; import { RBTree } from '../../math/RBTree/rbTree'; import { ActiveEdgeComparerWithRay } from './ActiveEdgeComparerWithRay'; import { Stem } from './Stem'; import { VisibilityGraph } from './VisibilityGraph'; import { VisibilityKind } from './VisibilityKind'; import { VisibilityVertex } from './VisibilityVertex'; export declare class PointVisibilityCalculator { activeEdgeComparer: ActiveEdgeComparerWithRay; activeSidesTree: RBTree; sideNodes: Map>; heapForSorting: BinaryHeapWithComparer; visibilityGraph: VisibilityGraph; visibilityKind: VisibilityKind; visibleBoundaries: Map; q: Point; qPolylinePoint: PolylinePoint; qV: VisibilityVertex; get QVertex(): VisibilityVertex; set QVertex(value: VisibilityVertex); sortedListOfPolypoints: Array; holes: Array; static CalculatePointVisibilityGraph(listOfHoles: Iterable, visibilityGraph: VisibilityGraph, point: Point, visibilityKind: VisibilityKind): VisibilityVertex; FillGraph(): void; SortSAndInitActiveSides(): void; InitHeapAndInsertActiveSides(): void; GetInitialVisibleBoundaryStemsAndInsertActiveSides(): IterableIterator; RegisterActiveSide(side: PolylinePoint): void; constructor(holes: Iterable, visibilityGraph: VisibilityGraph, point: Point, visibilityKind: VisibilityKind); Sweep(): void; SweepPolylinePoint(v: PolylinePoint): void; AddEdge(v: PolylinePoint): void; static LineTouchesPolygon(a: Point, p: PolylinePoint): boolean; GetOutgoingSide(v: PolylinePoint): PolylinePoint; static GetIncomingSide(v: PolylinePoint): PolylinePoint; ComputeHoleBoundariesPossiblyVisibleFromQ(): void; InitActiveEdgesAndActiveEdgesComparer(): void; ComputeVisiblePartOfTheHole(hole: Polyline): void; HoleSideIsVisibleFromQ(hole: Polyline, b: PolylinePoint): boolean; }