/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["exports","../../core/maybe","./euclideanLengthMeasurementUtils","./geodesicLengthMeasurementUtils"],(function(e,n,t,i){"use strict";function o(e,n){return r(t.euclideanLength,i.geodesicLength,t.euclideanHorizontalLength,n,e)}function a(e,n,o){return r(t.euclideanDirectDistanceBetweenPoints,i.geodesicDistanceBetweenPoints,t.euclideanHorizontalDistanceBetweenPoints,o,e,n)}function c(e,n,o,a){return r(t.euclideanDirectDistance,i.geodesicDistance,t.euclideanHorizontalDistance,a,e,n,o)}function s(e,n,o){return r(t.euclideanHorizontalDistanceBetweenPoints,i.geodesicDistanceBetweenPoints,t.euclideanHorizontalDistanceBetweenPoints,o,e,n)}function u(e,n,o,a){return r(t.euclideanHorizontalDistance,i.geodesicDistance,t.euclideanHorizontalDistance,a,e,n,o)}function r(e,t,i,o,...a){if("on-the-ground"===o){const e=t.apply(void 0,a);return n.isSome(e)?e:i.apply(void 0,a)}return e.apply(void 0,a)}e.autoDirectDistanceByElevationMode=c,e.autoDirectDistanceByElevationModeBetweenPoints=a,e.autoHorizontalDistanceByElevationMode=u,e.autoHorizontalDistanceByElevationModeBetweenPoints=s,e.autoLengthByElevationMode=o,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
