import type { BBox, MValue, Properties, RingIntersectionLookup, VectorLineString, VectorMultiPolygon, VectorPoint, VectorPolygon } from '../../../index.js'; /** Reconstructing a poly line that interacts with intersections */ export declare class PolyPath { id: number; outer?: VectorLineString; oldOuters: BBox[]; holes: VectorLineString[]; polysConsumed: Set; bbox: BBox; constructor(ring: VectorLineString, polysConsumed: Set, outer: boolean, bbox?: BBox); getPath(): VectorPolygon | undefined; } /** The next poly chunk */ export interface NextRingChunk { chunk: RingChunk; intPoint: VectorPoint; } /** A path/piece/chunk from a polygon */ export declare class RingChunk { polyIndex: number; ringIndex: number; bbox: BBox; mid: VectorLineString; from: VectorPoint; to: VectorPoint; fromAngle: number; toAngle: number; visted: boolean; next?: NextRingChunk; constructor(polyIndex: number, ringIndex: number, bbox: BBox, mid: VectorLineString, // Always starts with either the beginning of the poly ring OR an intersection point. from: VectorPoint, to: VectorPoint, fromAngle: number, toAngle: number); equalChunk(other: RingChunk): boolean; } /** Intersection Point */ export interface IntersectionPoint { point: VectorPoint; from: RingChunk[]; to: RingChunk[]; } /** Intersection Lookup for chunks */ export declare class InterPointLookup { lookup: { [x: number]: { [y: number]: IntersectionPoint; }; }; get(point: VectorPoint): IntersectionPoint; linkInts(polyIndex: number, ringIndex: number, from: VectorPoint, to: VectorPoint, mid: VectorLineString, fromAngle?: number, toAngle?: number): RingChunk; } /** * Build the PolyPaths and RingChunks * @param vectorPolygons - the collection of polygons * @param ringIntersectLookup - the ring intersection lookup for all rings in the multipolygon collection * @returns - the PolyPaths, their lookups, and RingChunks */ export declare function buildPathsAndChunks(vectorPolygons: VectorMultiPolygon, ringIntersectLookup: RingIntersectionLookup): [PolyPath[], Map>, RingChunk[], InterPointLookup, BBox[]]; /** * Given an of intersection, find the best way to connect the from->to chunks * @param intersection - the intersection to analyze */ export declare function mergeIntersectionPairs(intersection: IntersectionPoint): void; //# sourceMappingURL=pathBuilder.d.ts.map