export declare class Point { x: number; y: number; } export declare class LineSegment { x1: number; y1: number; x2: number; y2: number; constructor(x1: number, y1: number, x2: number, y2: number); } export declare class PolyPoint extends Point { polyIndex: number; } export declare function isLeft(P0: Point, P1: Point, P2: Point): number; export declare function ConvexHull(S: Point[]): Point[]; export declare function clockwiseRadialSweep(p: Point, P: Point[], f: (p: Point) => void): void; export declare function tangent_PolyPolyC(V: Point[], W: Point[], t1: (a: Point, b: Point[]) => number, t2: (a: Point, b: Point[]) => number, cmp1: (a: Point, b: Point, c: Point) => boolean, cmp2: (a: Point, b: Point, c: Point) => boolean): { t1: number; t2: number; }; export declare function LRtangent_PolyPolyC(V: Point[], W: Point[]): { t1: number; t2: number; }; export declare function RLtangent_PolyPolyC(V: Point[], W: Point[]): { t1: number; t2: number; }; export declare function LLtangent_PolyPolyC(V: Point[], W: Point[]): { t1: number; t2: number; }; export declare function RRtangent_PolyPolyC(V: Point[], W: Point[]): { t1: number; t2: number; }; export declare class BiTangent { t1: number; t2: number; constructor(t1: number, t2: number); } export declare class BiTangents { rl: BiTangent; lr: BiTangent; ll: BiTangent; rr: BiTangent; } export declare class TVGPoint extends Point { vv: VisibilityVertex; } export declare class VisibilityVertex { id: number; polyid: number; polyvertid: number; p: TVGPoint; constructor(id: number, polyid: number, polyvertid: number, p: TVGPoint); } export declare class VisibilityEdge { source: VisibilityVertex; target: VisibilityVertex; constructor(source: VisibilityVertex, target: VisibilityVertex); length(): number; } export declare class TangentVisibilityGraph { P: TVGPoint[][]; V: VisibilityVertex[]; E: VisibilityEdge[]; constructor(P: TVGPoint[][], g0?: { V: VisibilityVertex[]; E: VisibilityEdge[]; }); addEdgeIfVisible(u: TVGPoint, v: TVGPoint, i1: number, i2: number): void; addPoint(p: TVGPoint, i1: number): VisibilityVertex; private intersectsPolys; } export declare function tangents(V: Point[], W: Point[]): BiTangents; export declare function polysOverlap(p: Point[], q: Point[]): boolean;