import { StatsLabels } from "./StatsLabels";
export interface StatsCounter {
    inc: (labels: StatsLabels, value?: number) => void;
    reset: (labels: StatsLabels) => void;
}
export interface StatsGauge extends StatsCounter {
    dec: (labels: StatsLabels, value?: number) => void;
    set: (labels: StatsLabels, value: number) => void;
}
export declare type StatsTimerCallback = () => void;
export interface StatsHistogram {
    startTimer: (labels: StatsLabels) => StatsTimerCallback;
    observe: (labels: StatsLabels, value: number) => void;
}
export interface StatsMetricParams {
    name: string;
    help: string;
    labelNames?: string[];
}
export interface StatsSink {
    counter: (params: StatsMetricParams) => StatsCounter;
    gauge: (params: StatsMetricParams) => StatsGauge;
    histogram: (params: StatsMetricParams) => StatsHistogram;
}
