declare module "@condor-labs/metrics" { export type Tags = { [key: string]: string } | string[]; export type Stat = string | string[]; export type StatsCb = (error: Error | undefined, bytes: any) => void; export interface Config { host?: string; port?: number | string; globalTags?: Tags; } export interface MetricsClient { collectAppInformation(interval?: number): void; collectSystemInformation(interval?: number): void; heartbeatSignal(interval?: number): void; restartSignal(): void; implementFullMonitoring(interval?: number): void; // asyncTimer(fn: any, metricName: string, labels: any): Promise; asyncTimer

(fn: (...args: P) => Promise, metricName: Stat, labels: any): (...args: P) => Promise; connect(config: Config): void; closeConnection(): void; increment(stat: Stat, tags?: Tags): void; increment(stat: Stat, value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void; increment(stat: Stat, value: number, tags?: Tags, callback?: StatsCb): void; increment(stat: Stat, value: number, callback?: StatsCb): void; increment(stat: Stat, value: number, sampleRate?: number, callback?: StatsCb): void; decrement(stat: Stat): void; decrement(stat: Stat, value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void; decrement(stat: Stat, value: number, tags?: Tags, callback?: StatsCb): void; decrement(stat: Stat, value: number, callback?: StatsCb): void; decrement(stat: Stat, value: number, sampleRate?: number, callback?: StatsCb): void; gauge(stat: Stat, value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void; gauge(stat: Stat, value: number, tags?: Tags, callback?: StatsCb): void; gauge(stat: Stat, value: number, callback?: StatsCb): void; gauge(stat: Stat, value: number, sampleRate?: number, callback?: StatsCb): void; timing(stat: Stat, value: number | Date, sampleRate?: number, tags?: Tags, callback?: StatsCb): void; timing(stat: Stat, value: number | Date, tags?: Tags, callback?: StatsCb): void; timing(stat: Stat, value: number | Date, callback?: StatsCb): void; timing(stat: Stat, value: number | Date, sampleRate?: number, callback?: StatsCb): void; set(stat: Stat, value: number | string, sampleRate?: number, tags?: Tags, callback?: StatsCb): void; set(stat: Stat, value: number | string, tags?: Tags, callback?: StatsCb): void; set(stat: Stat, value: number | string, callback?: StatsCb): void; set(stat: Stat, value: number | string, sampleRate?: number, callback?: StatsCb): void; } } declare const metrics: MetricsClient; export default metrics;