const fileName_1 = "(@effect/core) _src/io/Metrics/definition.ts";
import * as tsplus_module_1 from "@tsplus/stdlib/collections/HashSet/empty";
import * as tsplus_module_2 from "@effect/core/io/Effect/operations/succeed";
import * as tsplus_module_3 from "@effect/core/io/Effect/operations/tap";
export const MetricSym = /*#__PURE__*/Symbol.for("@effect/core/io/Metric");
export const Metric = function (keyType, unsafeUpdate, unsafeValue) {
  const metric = Object.assign((effect, __tsplusTrace) => tsplus_module_3.tap_(effect, a => tsplus_module_2.succeed(() => unsafeUpdate(a, tsplus_module_1.empty()), fileName_1 + ":56:39"), fileName_1 + ":56:17"), {
    [MetricSym]: MetricSym,
    keyType,
    unsafeUpdate,
    unsafeValue
  });
  return metric;
};
/**
 * @tsplus static ets/Metrics/Metric/Ops $
 */

export const metricAspects = {};
/**
 * @tsplus static ets/Metrics/Metric/Ops Histogram
 */

export const histogramBoundaries = {
  Boundaries: {}
};
//# sourceMappingURL=definition.mjs.map