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

( geojson: AllGeoJSON, callback: ( currentSegment?: Feature, featureIndex?: number, multiFeatureIndex?: number, segmentIndex?: number, geometryIndex?: number ) => void ): void; /** * http://turfjs.org/docs/#linereduce */ declare function lineReduce< Reducer, P extends GeoJsonProperties = GeoJsonProperties, >( 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 */ declare function lineEach

( geojson: | FeatureCollection | Feature | Lines | Feature | GeometryCollection, callback: ( currentLine: Feature, featureIndex?: number, multiFeatureIndex?: number, geometryIndex?: number ) => void ): void; /** * http://turfjs.org/docs/#findsegment */ declare function findSegment< G extends LineString | MultiLineString | Polygon | MultiPolygon, P extends GeoJsonProperties = GeoJsonProperties, >( 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 */ declare function findPoint< G extends GeometryObject, P extends GeoJsonProperties = GeoJsonProperties, >( geojson: Feature | FeatureCollection | G, options?: { featureIndex?: number; multiFeatureIndex?: number; geometryIndex?: number; coordIndex?: number; properties?: P; bbox?: BBox; id?: Id; } ): Feature; export { coordAll, coordEach, coordReduce, featureEach, featureReduce, findPoint, findSegment, flattenEach, flattenReduce, geomEach, geomReduce, lineEach, lineReduce, propEach, propReduce, segmentEach, segmentReduce };