import { LidarprofileManager as GmfLidarprofileManagerLidarprofileManager } from 'ngeo/lidar/Manager';
import { LidarprofilePoints as GmfLidarprofileUtilsLidarprofilePoints } from 'ngeo/lidar/Utils';
import { LidarPoint as GmfLidarprofileUtilsLidarPoint } from 'ngeo/lidar/Utils';
import { LidarprofileServerConfigClassification as GmfLidarprofileConfigLidarprofileServerConfigClassification } from 'ngeo/lidar/Config';
import { LidarprofileServerConfigClassifications as GmfLidarprofileConfigLidarprofileServerConfigClassifications } from 'ngeo/lidar/Config';
export type updateScaleFunction = {
    (arg1: number): number;
};
export default class {
    /**
     * @private
     */
    manager_: GmfLidarprofileManagerLidarprofileManager;
    /**
     * d3.scaleLinear X scale.
     */
    scaleX: undefined | d3.ScaleLinear<number, number>;
    /**
     * d3.scaleLinear X scale.
     */
    updateScaleX: updateScaleFunction;
    /**
     * d3.scaleLinear Y scale.
     */
    scaleY: undefined | d3.ScaleLinear<number, number>;
    /**
     * d3.scaleLinear Y scale.
     */
    updateScaleY: updateScaleFunction;
    /**
     * The material used for the drawing process. Initialized in the setup
     */
    material: undefined | string;
    /**
     * @private
     */
    width_: number;
    /**
     * @private
     */
    height_: number;
    previousDomainX: number[];
    /**
     * @private
     */
    moved_: boolean;
    /**
     * Provides a service to create an SVG element with defined axis and a LIDAR
     * point drawing mechanism.
     * @param gmfLidarprofileManagerInstance
     *    gmf lidar profile manager instance
     */
    constructor(gmfLidarprofileManagerInstance: GmfLidarprofileManagerLidarprofileManager);
    /**
     * Draw the points to the canvas element.
     * @param points of the profile
     */
    drawPoints(points: GmfLidarprofileUtilsLidarprofilePoints): void;
    /**
     * Setup the SVG components of the D3 chart.
     * @param rangeX range of the x scale
     * @param rangeY range of the y scale
     */
    setupPlot(rangeX: number[], rangeY: number[]): void;
    /**
     * Update the plot data at the end of the zoom process.
     * @param event Event .
     */
    zoomEnd(event: any): void;
    /**
     * Update the plot axis during the zoom process.
     * @param event Event .
     */
    zoomed(event: any): void;
    /**
     * Update the OpenLayers overlay that displays point position and attributes values.
     * @param event Event .
     */
    pointHighlight(event: MouseEvent): void;
    /**
     * @param point the concerned point.
     * @param classification_color
     *    the classification object concerning this point.
     * @param distDecimal the number of decimal to keep.
     * @returns the text for the html info.
     */
    getInfoHTML(point: GmfLidarprofileUtilsLidarPoint, classification_color: GmfLidarprofileConfigLidarprofileServerConfigClassification, distDecimal: number): string;
    formatDecimals(num: number, decimals: number): number;
    /**
     * Change the profile style according to the material color.
     * @param material value as defined in Pytree attribute configuration
     */
    changeStyle(material: string): void;
    /**
     * Show/Hide classes in the profile.
     * @param classification
     *   value as defined in the Pytree classification_colors configuration
     * @param material  value as defined in Pytree attribute configuration
     */
    setClassActive(classification: GmfLidarprofileConfigLidarprofileServerConfigClassifications, material: string): void;
}
