/// /// import { EventEmitter } from 'events'; import SDC = require('statsd-client'); export interface MetricReporter extends EventEmitter { increment(name: string, count?: number, meta?: Object): any; decrement(name: string, count?: number, meta?: Object): any; counter(name: string, count: number, meta?: Object): any; gauge(name: string, value: number, meta?: Object): any; gaugeDelta(name: string, delta: number, meta?: Object): any; set(name: string, value: number, meta?: Object): any; timing(name: string, value: Date, meta?: Object): any; timing(name: string, duration: number, meta?: Object): any; } export interface StatsDMetricReporterConfig { mode?: 'udp' | 'tcp'; host: string; port: number; prefix?: string; statsdClient?: SDC; } export declare class StatsDMetricReporter extends EventEmitter implements MetricReporter { client: SDC; config: StatsDMetricReporterConfig; constructor(config: StatsDMetricReporterConfig); increment(name: string, count?: number, meta?: Object): void; decrement(name: string, count?: number, meta?: Object): void; counter(name: string, count: number, meta?: Object): void; gauge(name: string, value: number, meta?: Object): void; gaugeDelta(name: string, delta: number, meta?: Object): void; set(name: string, value: number, meta?: Object): void; timing(name: string, value: Date | number, meta?: Object): void; }