/** * @since 2.0.0 */ import * as internal from "./internal/metric/registry.js" import type * as MetricHook from "./MetricHook.js" import type * as MetricKey from "./MetricKey.js" import type * as MetricKeyType from "./MetricKeyType.js" import type * as MetricPair from "./MetricPair.js" /** * @since 2.0.0 * @category symbols */ export const MetricRegistryTypeId: unique symbol = internal.MetricRegistryTypeId /** * @since 2.0.0 * @category symbols */ export type MetricRegistryTypeId = typeof MetricRegistryTypeId /** * @since 2.0.0 * @category models */ export interface MetricRegistry { readonly [MetricRegistryTypeId]: MetricRegistryTypeId snapshot(): Array get>( key: MetricKey.MetricKey ): MetricHook.MetricHook< MetricKeyType.MetricKeyType.InType, MetricKeyType.MetricKeyType.OutType > getCounter( key: MetricKey.MetricKey.Counter ): MetricHook.MetricHook.Counter getFrequency(key: MetricKey.MetricKey.Frequency): MetricHook.MetricHook.Frequency getGauge(key: MetricKey.MetricKey.Gauge): MetricHook.MetricHook.Gauge getHistogram(key: MetricKey.MetricKey.Histogram): MetricHook.MetricHook.Histogram getSummary(key: MetricKey.MetricKey.Summary): MetricHook.MetricHook.Summary } /** * @since 2.0.0 * @category constructors */ export const make: (_: void) => MetricRegistry = internal.make