import { StatsLabels } from "./StatsLabels";
import { StatsStorage, LabelledValue } from "./StatsStorage";
import { StatsSink, StatsMetricParams, StatsCounter, StatsGauge } from "./StatsSink";
import { StatsHistogram, StatsTimerCallback } from "./index";
export declare class StandaloneStatsMetric {
    readonly name: string;
    readonly help: string;
    readonly labelNames: string[];
    private values;
    constructor(params: StatsMetricParams);
    getInstantValues(labels: StatsLabels): LabelledValue[];
    protected getValue(labels: StatsLabels): LabelledValue;
    private getValuesAsArray;
    private testLabels;
    private checkLabelNames;
    private generateLabelHash;
}
export declare class StandaloneStatsCounter extends StandaloneStatsMetric implements StatsCounter {
    inc(labels: StatsLabels, value?: number): void;
    reset(labels: StatsLabels, value?: number): void;
}
export declare class StandaloneStatsGauge extends StandaloneStatsCounter implements StatsGauge {
    dec(labels: StatsLabels, value?: number): void;
    set(labels: StatsLabels, value: number): void;
}
export declare class StandaloneStatsHistogram extends StandaloneStatsMetric implements StatsHistogram {
    observe(labels: StatsLabels, value: number): void;
    startTimer(labels: StatsLabels): StatsTimerCallback;
}
export declare class StandaloneStats implements StatsSink, StatsStorage {
    private metrics;
    counter(params: StatsMetricParams): StatsCounter;
    gauge(params: StatsMetricParams): StatsGauge;
    histogram(params: StatsMetricParams): StatsHistogram;
    getInstantValues(name: string, labels?: StatsLabels): Promise<LabelledValue[]>;
}
