import { ICurve } from './icurve'; import { Point } from './point'; import { LineSegment } from './lineSegment'; import { Parallelogram } from './parallelogram'; export type PN = { parallelogram: Parallelogram; seg: ICurve; leafBoxesOffset: number; node: PNInternal | PNLeaf; }; export declare function createPNLeaf(start: number, end: number, box: Parallelogram, seg: ICurve, eps: number): PN; export type PNLeaf = { low: number; high: number; chord: LineSegment | null; }; export type PNInternal = { children: PN[]; }; export declare class ParallelogramNode { static distToSegm(p: Point, s: Point, e: Point): number; static createParallelogramOnSubSeg(start: number, end: number, seg: ICurve): Parallelogram | undefined; static createParallelogramNodeForCurveSeg(start: number, end: number, seg: ICurve, eps: number): PN; static WithinEpsilon(seg: ICurve, start: number, end: number, eps: number): boolean; static createParallelogramNodeForCurveSegDefaultOffset(seg: ICurve): PN; static createNodeWithSegmentSplit(start: number, end: number, ell: ICurve, eps: number): PN; }