import MetricsType from './MetricsType';
import MetricsConfiguration from './MetricsConfiguration';
interface IValue {
    string?: string;
    uint64?: number;
    float?: number;
}
interface IMetric {
    streamId?: string;
    metricType: MetricsType;
    value?: IValue;
    previousValue?: IValue;
    runtime: number;
    resource?: string;
    kind?: string;
}
export default class MetricsService {
    private readonly _logger;
    private readonly _metricsConfiguration;
    private readonly _exponentialBackoff;
    private _metrics;
    private _isSending;
    private _failureCount;
    private _domain;
    constructor(metricsConfiguration: MetricsConfiguration);
    get metricsConfiguration(): MetricsConfiguration;
    push(metric: IMetric): void;
    private getLocationHostnameFromGlobalScope;
    private sendMetrics;
    private sendMetricsIfAble;
    private isResponseStatusCodeRetryable;
}
export {};
