import { Point, LineString, Polygon, MultiLineString, MultiPolygon, FeatureCollection, Feature, GeometryObject, GeometryCollection, AllGeoJSON, Properties, Geometries, Lines, BBox, Id, } from "@turf/helpers"; /** * http://turfjs.org/docs/#coordreduce */ export function coordReduce( geojson: AllGeoJSON, callback: ( previousValue: Reducer, currentCoord: number[], coordIndex: number, featureIndex: number, multiFeatureIndex: number, geometryIndex: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#coordeach */ export function coordEach( geojson: AllGeoJSON, callback: ( currentCoord: number[], coordIndex: number, featureIndex: number, multiFeatureIndex: number, geometryIndex: number ) => void, excludeWrapCoord?: boolean ): void; /** * http://turfjs.org/docs/#propeach */ export function propEach( geojson: Feature | FeatureCollection | Feature, callback: (currentProperties: Props, featureIndex: number) => void ): void; /** * http://turfjs.org/docs/#propreduce */ export function propReduce( geojson: | Feature | FeatureCollection | Geometries | GeometryCollection, callback: ( previousValue: Reducer, currentProperties: P, featureIndex: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#featurereduce */ export function featureReduce< Reducer extends any, G extends Geometries, P = Properties >( geojson: | Feature | FeatureCollection | Feature, callback: ( previousValue: Reducer, currentFeature: Feature, featureIndex: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#featureeach */ export function featureEach( geojson: | Feature | FeatureCollection | Feature, callback: (currentFeature: Feature, featureIndex: number) => void ): void; /** * http://turfjs.org/docs/#coordall */ export function coordAll(geojson: AllGeoJSON): number[][]; /** * http://turfjs.org/docs/#geomreduce */ export function geomReduce< Reducer extends any, G extends Geometries, P = Properties >( geojson: | Feature | FeatureCollection | G | GeometryCollection | Feature, callback: ( previousValue: Reducer, currentGeometry: G, featureIndex: number, featureProperties: P, featureBBox: BBox, featureId: Id ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#geomeach */ export function geomEach( geojson: | Feature | FeatureCollection | G | GeometryCollection | Feature, callback: ( currentGeometry: G, featureIndex: number, featureProperties: P, featureBBox: BBox, featureId: Id ) => void ): void; /** * http://turfjs.org/docs/#flattenreduce */ export function flattenReduce< Reducer extends any, G extends Geometries, P = Properties >( geojson: | Feature | FeatureCollection | G | GeometryCollection | Feature, callback: ( previousValue: Reducer, currentFeature: Feature, featureIndex: number, multiFeatureIndex: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#flatteneach */ export function flattenEach( geojson: | Feature | FeatureCollection | G | GeometryCollection | Feature, callback: ( currentFeature: Feature, featureIndex: number, multiFeatureIndex: number ) => void ): void; /** * http://turfjs.org/docs/#segmentreduce */ export function segmentReduce( geojson: | FeatureCollection | Feature | Lines | Feature | GeometryCollection, callback: ( previousValue?: Reducer, currentSegment?: Feature, featureIndex?: number, multiFeatureIndex?: number, segmentIndex?: number, geometryIndex?: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#segmenteach */ export function segmentEach

( geojson: AllGeoJSON, callback: ( currentSegment?: Feature, featureIndex?: number, multiFeatureIndex?: number, segmentIndex?: number, geometryIndex?: number ) => void ): void; /** * http://turfjs.org/docs/#linereduce */ export function lineReduce( geojson: | FeatureCollection | Feature | Lines | Feature | GeometryCollection, callback: ( previousValue?: Reducer, currentLine?: Feature, featureIndex?: number, multiFeatureIndex?: number, geometryIndex?: number ) => Reducer, initialValue?: Reducer ): Reducer; /** * http://turfjs.org/docs/#lineeach */ export function lineEach

( geojson: | FeatureCollection | Feature | Lines | Feature | GeometryCollection, callback: ( currentLine?: Feature, featureIndex?: number, multiFeatureIndex?: number, geometryIndex?: number ) => void ): void; /** * http://turfjs.org/docs/#findsegment */ export function findSegment< G extends LineString | MultiLineString | Polygon | MultiPolygon, P = Properties >( geojson: Feature | FeatureCollection | G, options?: { featureIndex?: number; multiFeatureIndex?: number; geometryIndex?: number; segmentIndex?: number; properties?: P; bbox?: BBox; id?: Id; } ): Feature; /** * http://turfjs.org/docs/#findpoint */ export function findPoint( geojson: Feature | FeatureCollection | G, options?: { featureIndex?: number; multiFeatureIndex?: number; geometryIndex?: number; coordIndex?: number; properties?: P; bbox?: BBox; id?: Id; } ): Feature;