import { Metric } from "@effect/core/io/Metrics/definition";
import { HashSet } from "@tsplus/stdlib/collections/HashSet/definition";
import { MetricLabel } from "@effect/core/io/Metrics/MetricLabel";
/**
 * Returns a new metric, which is identical in every way to this one, except
 * dynamic tags are added based on the update values. Note that the metric
 * returned by this method does not return any useful information, due to the
 * dynamic nature of the added tags.
 * @tsplus fluent ets/Metrics/Metric taggedWith
 * @tsplus location "@effect/core/io/Metrics/operations/taggedWith"
 */
export declare function taggedWith_<Type, In, Out>(self: Metric<Type, In, Out>, f: (input: In) => HashSet<MetricLabel>): Metric<Type, In, void>;
/**
 * Returns a new metric, which is identical in every way to this one, except
 * dynamic tags are added based on the update values. Note that the metric
 * returned by this method does not return any useful information, due to the
 * dynamic nature of the added tags.
 * @tsplus static ets/Metrics/Metric/Aspects taggedWith
 * @tsplus pipeable ets/Metrics/Metric taggedWith
 * @tsplus location "@effect/core/io/Metrics/operations/taggedWith"
 */
export declare const taggedWith: <In>(f: (input: In) => HashSet<MetricLabel>) => <Type, Out>(self: import("../definition").Metric<Type, In, Out>) => import("../definition").Metric<Type, In, void>;
//# sourceMappingURL=taggedWith.d.ts.map