import { Meter, Counter, ObservableUpDownCounter, Histogram } from '@opentelemetry/api'; import InstrumentedSemaphorePoolFactory, { MetricOptions, SemaphoreLabels, SemaphorePoolLabels, SemaphoreSettledLabels } from './instrumented.js'; export default class OTelSemaphorePoolFactory extends InstrumentedSemaphorePoolFactory { #private; constructor(meter: Meter, opts?: MetricOptions); get meter(): Meter; get metrics(): { requested: Counter & { inc(labels: SemaphoreLabels): void; init(labels: SemaphoreLabels): void; }; settled: Counter & { inc(labels: SemaphoreSettledLabels): void; init(labels: SemaphoreSettledLabels): void; }; released: Counter & { inc(labels: SemaphoreLabels): void; init(labels: SemaphoreLabels): void; }; reserved: ObservableUpDownCounter & { set(labels: SemaphoreLabels, value: number): void; }; queued: ObservableUpDownCounter & { set(labels: SemaphoreLabels, value: number): void; }; concurrency: ObservableUpDownCounter & { set(labels: SemaphorePoolLabels, value: number): void; }; capacity: ObservableUpDownCounter & { set(labels: SemaphorePoolLabels, value: number): void; }; waittime: Histogram & { observe(labels: SemaphoreSettledLabels, value: number): void; }; heldtime: Histogram & { observe(labels: SemaphoreLabels, value: number): void; }; }; }