import { Tooltip, Position } from '@deck.gl-community/editable-layers';
import { ControllerOptions } from '../../../node_modules/@deck.gl/core/dist/controllers/controller';
import { ValueOf } from 'type-fest';
import { DeckGLComponentProps } from '../../types';
import { MapMeasurementUnit, MapMeasurementUnitAuto } from './const';
import { EditModeConfig, MeasurementToolsTextProps } from './types';
/**
 * Converts a distance in meters to the specified unit for either length or area dimensions.
 *
 * @param distance - The distance value in meters (or square meters for area).
 * @param unit - The target measurement unit.
 * @param dimension - Whether to convert as `'length'` or `'area'`.
 * @returns The converted distance value in the target unit.
 */
export declare function convertMetersTo(distance: number, unit: ValueOf<typeof MapMeasurementUnit>, dimension: 'length' | 'area'): number;
/**
 * Formats a distance or area value in meters into a localized, unit-aware display string for measurement text layers.
 *
 * @remarks
 * Supports automatic unit switching (e.g., meters to kilometers) when using auto units like `'m-km'` or `'ft-mi'`.
 * A custom formatter function can be provided via `options.customFormatter`.
 *
 * @returns A formatted string with the value and unit (e.g., "1.50 km" or "3.25 mi").
 */
export declare function getTextLayerFormattedDistance({ meters, unit, locale, options: { autoSplitNumber, customFormatter, ...intlOptions }, dimension, }: {
    meters: number;
    unit: ValueOf<typeof MapMeasurementUnitAuto>;
    locale: string;
    options?: MeasurementToolsTextProps;
    dimension?: 'length' | 'area';
}): string;
/**
 * Returns a deck.gl controller options object with the `doubleClickZoom` setting applied.
 *
 * @param controller - The current controller value (boolean or options object).
 * @param options - Object containing the desired `hasDoubleClickZoom` setting.
 * @returns A `ControllerOptions` object with double-click zoom configured.
 */
export declare function getDeckController(controller: DeckGLComponentProps['controller'], { hasDoubleClickZoom, }: {
    hasDoubleClickZoom: boolean;
}): ControllerOptions;
export declare function buildTooltip(value: number, position: Position, modeConfig: EditModeConfig): Tooltip[];
