import { Port } from '../../layout/core/port'; import { Point } from '../../math/geometry/point'; import { Polyline } from '../../math/geometry/polyline'; import { PolylinePoint } from '../../math/geometry/polylinePoint'; import { Rectangle } from '../../math/geometry/rectangle'; import { Shape } from '../shape'; import { LowObstacleSide, HighObstacleSide } from './BasicObstacleSide'; import { OverlapConvexHull } from './OverlapConvexHull'; import { ScanDirection } from './ScanDirection'; export declare class Obstacle { static readonly FirstSentinelOrdinal = 1; static readonly FirstNonSentinelOrdinal = 10; private _PaddedPolyline; get PaddedPolyline(): Polyline; set PaddedPolyline(value: Polyline); IsRectangle: boolean; InputShape: Shape; Ports: Set; ConvexHull: OverlapConvexHull; OverlapsGroupCorner: boolean; private _looseVisibilityPolyline; get looseVisibilityPolyline(): Polyline; set looseVisibilityPolyline(value: Polyline); GetPortChanges(t: { addedPorts: Set; removedPorts: Set; }): boolean; get IsInConvexHull(): boolean; get IsGroup(): boolean; get VisibilityBoundingBox(): Rectangle; get VisibilityPolyline(): Polyline; static CreateSentinel(a: Point, b: Point, scanDir: ScanDirection, scanlineOrdinal: number): Obstacle; ActiveLowSide: LowObstacleSide; ActiveHighSide: HighObstacleSide; CreateInitialSides(startPoint: PolylinePoint, scanDir: ScanDirection): void; constructor(shape: Shape, padding: number); static mk(a: Point, b: Point, scanlineOrdinal: number): Obstacle; private IsPolylineRectangle; static RoundVerticesAndSimplify(polyline: Polyline): void; get IsPrimaryObstacle(): boolean; static RemoveCloseAndCollinearVerticesInPlace(polyline: Polyline): Polyline; Ordinal: number; clump: Array; get isOverlapped(): boolean; get IsSentinel(): boolean; IsInSameClump(other: Obstacle): boolean; Close(): void; SetConvexHull(hull: OverlapConvexHull): void; static CreateLoosePolyline(polyline: Polyline): Polyline; get IsTransparentAncestor(): boolean; set IsTransparentAncestor(value: boolean); }