import type { _Out } from "@effect/core/io/Metrics/MetricKeyType" /** * @tsplus type effect/core/io/Metrics/MetricPair */ export interface MetricPair> { readonly metricKey: MetricKey readonly metricState: MetricState< [Type] extends [{ [_Out]: () => infer Out }] ? Out : never > } /** * @tsplus type effect/core/io/Metrics/MetricPair.Ops */ export interface MetricPairOps {} export const MetricPair: MetricPairOps = {} export declare namespace MetricPair { export type Untyped = MetricPair> } /** * @tsplus static effect/core/io/Metrics/MetricPair.Ops make */ export function make>( metricKey: MetricKey, metricState: MetricState< [Type] extends [{ [_Out]: () => infer Out }] ? Out : never > ): MetricPair.Untyped { return { metricKey, metricState } } /** * @tsplus static effect/core/io/Metrics/MetricPair.Ops unsafeMake */ export function unsafeMake>( metricKey: MetricKey, metricState: MetricState.Untyped ): MetricPair.Untyped { return { metricKey, metricState } }