import { MetricKeyType } from "@effect/core/io/Metrics/MetricKeyType";
import { MetricKey } from "@effect/core/io/Metrics/MetricKey";
import type { _In } from "@effect/core/io/Metrics/MetricKeyType";
/**
 * A `MetricListener` is capable of taking some action in response to a metric
 * being recorded, such as sending that metric to a third-party service.
 *
 * @tsplus type ets/Metrics/MetricListener
 */
export declare class MetricListener {
    readonly unsafeUpdate: <Type extends MetricKeyType<any, any>>(key: MetricKey<Type>) => (_: [typeof key["keyType"]] extends [{
        [_In]: () => infer In;
    }] ? In : never) => void;
    constructor(unsafeUpdate: <Type extends MetricKeyType<any, any>>(key: MetricKey<Type>) => (_: [typeof key["keyType"]] extends [{
        [_In]: () => infer In;
    }] ? In : never) => void);
    unsafeUpdateCache<Type extends MetricKeyType<any, any>>(key: MetricKey<Type>): (_: [typeof key["keyType"]] extends [{
        [_In]: () => infer In;
    }] ? In : never) => void;
}
//# sourceMappingURL=MetricListener.d.ts.map