import type express from 'express'; import type prometheus from 'prom-client'; import type { AggregatorStrategy } from './enums'; export interface LabelSet { [name: string]: string; } export interface CustomParams { percentiles?: number[]; buckets?: number[]; labelNames?: string[]; aggregator?: AggregatorStrategy; } export declare class MetricConstructor { construct: new (...args: U) => prometheus.Metric; constructor(construct: new (...args: U) => prometheus.Metric); create(...args: U): prometheus.Metric; } export interface MetricsMap { gauge: { [name: string]: prometheus.Gauge; }; counter: { [name: string]: prometheus.Counter; }; histogram: { [name: string]: prometheus.Histogram; }; summary: { [name: string]: prometheus.Summary; }; } export type Kind = keyof MetricsMap; export interface MetricsMeta { kind: Kind; help: string; customParams: CustomParams; } export interface MetricsMetaMap { [name: string]: MetricsMeta; } export type AuthTestFunc = (req: express.Request) => boolean;