import * as PromClient from 'prom-client'; import { CustomLogger } from "../CustomLogger"; export declare type HealthCheckResult = { name: string; up: boolean; }; export declare type DependencyTimePayload = { name: string; type: string; statusCode: number; method: string; addr: string; errorMessage: string; start: [number, number]; }; export declare type HealthCheckResultCallBack = (result: HealthCheckResult) => void; export declare type HealthCheckCallback = (callback: HealthCheckResultCallBack) => void; export declare type PartHandler = Partial; declare type handlerResponse = (part: PartHandler) => (payload: T) => T; declare type handlerError = (part: PartHandler) => (err: any) => any; declare type getHandlerResponse = (part: PartHandler) => handlerResponse; declare type getHandlerError = (part: PartHandler) => handlerError; export interface metricsHandlers { handleResponse: handlerResponse; handleError: handlerError; } export declare type RequestTimePayload = { type: string; status: number; method: string; addr: string; errorMessage?: string; start: [number, number]; }; export declare class MetricsService { private logger; readonly promClient: typeof PromClient; readonly buckets: number[]; private readonly dependencyUp; private dependencyRequestSeconds; private readonly reqSeconds; constructor(logger: CustomLogger); watchDependencies(healthCheck: HealthCheckCallback): void; collectDependencyTime: (payload: DependencyTimePayload) => void; collectRequestTime: (payload: RequestTimePayload) => void; setupApplicationInfo: (name: string, version: string, info?: any) => void; private registerDependencyMetrics; private diffTimeInSeconds; getHandlerSuccess: getHandlerResponse; getHandlerError: getHandlerError; } export {};