import type { MValue, Properties, VectorFeatures, VectorMultiPolygon, VectorMultiPolygonGeometry, VectorPolygon, VectorPolygonGeometry } from '../../../index.js';
/**
 * Ensures the collection of polygon ring order is correct, removes duplicate points,
 * and runs a dekink to be thorough.
 *
 * NOTE: This will not remove/reduce points that follow a path angle like [[0, 0], [0, 1], [0, 2], ...].
 * The decision to leave this to the user is due to the fact that not all projections are guaranteed
 * to support a linear relationship. Also sometimes the user want's to have these extra points for
 * future/cleaner projection changes. For example, having higher precision works well when
 * translating to spherical projections for instance. If you do want to remove these points, pass
 * in true to `removeCollinearPoints`
 * @param polygons - the collection of polygon as either a VectorFeature, VectorMultiPolygonGeometry, or raw VectorMultiPolygon
 * @param removeCollinearPoints - if true, remove superfluous points
 * @param cleanWGS84 - if true, clean WGS84 points to be in bounds
 * @returns - the cleaned polygon
 */
export declare function cleanPolygons<M = Record<string, unknown>, D extends MValue = Properties, P extends Properties = Properties>(polygons: VectorMultiPolygon<D> | VectorMultiPolygonGeometry<D> | VectorFeatures<M, D, P, VectorMultiPolygonGeometry<D>>, removeCollinearPoints?: boolean, cleanWGS84?: boolean): VectorMultiPolygonGeometry<D> | undefined;
/**
 * Ensures the polygon ring order is correct, removes duplicate points, and runs a dekink to be
 * thorough.
 *
 * NOTE: This will not remove/reduce points that follow a path angle like [[0, 0], [0, 1], [0, 2], ...].
 * The decision to leave this to the user is due to the fact that not all projections are guaranteed
 * to support a linear relationship. Also sometimes the user want's to have these extra points for
 * future/cleaner projection changes. For example, having higher precision works well when
 * translating to spherical projections for instance. If you do want to remove these points, pass
 * in true to `removeCollinearPoints`
 * @param polygon - the polygon as either a VectorFeature, VectorPolygonGeometry, or raw VectorPolygon
 * @param removeCollinearPoints - if true, remove superfluous points
 * @param cleanWGS84 - if true, clean WGS84 points to be in bounds
 * @returns - the cleaned polygon
 */
export declare function cleanPolygon<M = Record<string, unknown>, D extends MValue = Properties, P extends Properties = Properties>(polygon: VectorPolygon<D> | VectorPolygonGeometry<D> | VectorFeatures<M, D, P, VectorPolygonGeometry<D>>, removeCollinearPoints?: boolean, cleanWGS84?: boolean): VectorMultiPolygonGeometry<D> | undefined;
//# sourceMappingURL=clean.d.ts.map