import prometheus, { LabelValues, Histogram, Registry } from 'prom-client';
import { Server } from 'net';
import { Logger } from '..';
export interface Metrics {
    client: typeof prometheus;
    registry: Registry;
}
export declare const createMetrics: () => Metrics;
export interface MetricsServerOptions {
    logger: Logger;
    registry: Registry;
    port?: number;
    route?: string;
}
export declare const createMetricsServer: (options: MetricsServerOptions) => Server;
export declare function timed<T>(metric: Histogram<string> | undefined, labels: LabelValues<string> | undefined, promise: T | Promise<T>): Promise<T>;
