import { Counter, Gauge, Histogram, Registry } from "prom-client";
import { AvgMinMax } from "./avgMinMax.js";
import { GaugeExtra } from "./gauge.js";
export class RegistryMetricCreator extends Registry {
    gauge(configuration) {
        return new GaugeExtra({ ...configuration, registers: [this] });
    }
    histogram(configuration) {
        return new Histogram({ ...configuration, registers: [this] });
    }
    avgMinMax(configuration) {
        return new AvgMinMax({ ...configuration, registers: [this] });
    }
    /** Static metric to send string-based data such as versions, config params, etc */
    static({ name, help, value }) {
        new Gauge({ name, help, labelNames: Object.keys(value), registers: [this] }).set(value, 1);
    }
    counter(configuration) {
        return new Counter({ ...configuration, registers: [this] });
    }
}
//# sourceMappingURL=registryMetricCreator.js.map