///
///
import promClient from 'prom-client';
import expressPromBundle from 'express-prom-bundle';
import { KnexExporterResult } from 'knex-prometheus-exporter';
import fs from 'fs';
import type { Router } from 'express';
import type { Knex } from 'knex';
import type { Log } from './types';
interface PrometheusConfig {
version: string;
namespace: string;
name: string;
ipAddress: string;
pod: string;
buildBranch?: string;
buildVersion?: string;
distPath: string;
}
declare class Prometheus {
private _register;
private readonly _config;
private readonly _log;
private _buildInfoCount;
private _buildInfoMax;
private _buildInfoSum;
private _dynamicallyCreatedHistograms;
constructor(config: PrometheusConfig, log?: Log);
metrics(): Promise;
metricsInJson(): Promise>[]>;
getExpressMetricsMiddleware(): expressPromBundle.Middleware;
registerKnex(knex: Knex, id: string): KnexExporterResult;
unregisterKnex(exporter: KnexExporterResult): void;
attachToExpress(router: Pick): Pick;
buildInfoFile(): void;
getInfoFile(): fs.ReadStream;
createHistogram(name: string, help: string, labelNames?: string[]): promClient.Histogram;
startHistogram(metricName: string, labels: Record): (labels?: Partial> | undefined) => number;
}
export { Prometheus };