import { ngeoProfileOptions as ngeoOptionsNgeoProfileOptions } from 'ngeo/options';
import { ProfileOptions as NgeoProfileElevationComponentProfileOptions } from 'ngeo/profile/elevationComponent';
/**
 * Provides a D3js component to be used to draw an elevation
 * profile chart.
 *
 *     let selection = d3select('#element_id');
 *     let profile = ngeo.profile.d3Elevation({
 *       distanceExtractor: function (item) {return item['dist'];},
 *       linesConfiguration: {
 *         'lineZ1': {
 *           zExtractor: function (item) {return item['values']['z1'];}
 *         },
 *         'lineZ2': {
 *           color: '#00F',
 *           zExtractor: function (item) {return item['values']['z2'];}
 *         }
 *       },
 *       hoverCallback: function(point, dist, xUnits, elevations, yUnits) {
 *         console.log(point.x, point.y);
 *       },
 *       outCallback: function() {
 *         console.log("out");
 *       }
 *     });
 *     selection.datum(data).call(profile);
 *
 * The selection data must be an array.
 * The layout for the items of this array is unconstrained: the distance values
 * is extracted using the distanceExtractor config option and multiples z values
 * can be displayed by providing multiple linesConfiguration with its specific
 * zExtractor.
 * Optionally you can provide a color in your linesConfiguration. A line without
 * color will be red. Each linesConfiguration name is used as class for its
 * respective line. So you can pass a styleDefs config option (inline css) to
 * customize the line or all the chart.
 * Optionally, POIs can be displayed and depend on a poiExtractor
 * config option.
 *
 * The data below will work for the above example:
 *
 *     [
 *         {
 *             "y": 199340,
 *             "values": {"z1": 788.7, "z2": 774.2},
 *             "dist": 0.0,
 *             "x": 541620
 *         }, ...
 *     ]
 * @param {ngeoOptionsNgeoProfileOptions} options Profile options.
 * @param {NgeoProfileElevationComponentProfileOptions<unknown>} functions Profile options.
 * @returns D3js component.
 * @private
 */
declare function d3Elevation(options: ngeoOptionsNgeoProfileOptions, functions: NgeoProfileElevationComponentProfileOptions): unknown;
export default d3Elevation;
