import type { Polygon, Triangle } from '@allmaps/types';
import { interpolateRing, interpolatePolygon } from './shared.js';
import type { TriangluationOptions, TriangulationToUnique } from './types.js';
export { interpolateRing, interpolatePolygon };
/**
 * Triangulate a polygon to triangles smaller then a distance
 *
 * Grid points are placed inside the polygon to obtain small, well conditioned triangles.
 *
 * @param polygon - Polygon
 * @param distance - Distance that conditions the triangles
 * @param triangulationOptions - Triangulation Options.
 * @returns Array of triangles partitioning the polygon
 */
export declare function triangulate(polygon: Polygon, distance?: number, triangulationOptions?: Partial<TriangluationOptions>): Triangle[];
/**
 * Triangulate a polygon to triangles smaller then a distance, and return them via unique points.
 *
 * Grid points are placed inside the polygon to obtain small, well conditioned triangles.
 *
 * This function returns the triangulation as an array of unique points, and triangles of indices refering to those unique points.
 *
 * @param polygon - Polygon
 * @param distance - Distance that conditions the triangles
 * @param partialOptions - Triangulation Options.
 * @returns Triangulation Object with uniquePointIndexTriangles and uniquePoints
 */
export declare function triangulateToUnique(polygon: Polygon, distance?: number, partialOptions?: Partial<TriangluationOptions>): TriangulationToUnique;
