import { HttpPlugin, HttpApp } from '../types'; import { MetricsConfig, MetricsCollector } from '../metrics/types'; import { Logger } from '../../../common'; export interface MetricsPluginOptions extends MetricsConfig { exposeEndpoint?: boolean; metricsPath?: string; metricsFormat?: 'prometheus' | 'json' | 'text'; includeSystemMetrics?: boolean; } export declare class MetricsPlugin implements HttpPlugin { readonly name = "metrics"; readonly version = "0.1.0"; private collector; config: MetricsPluginOptions; private metricsMiddleware; private startTime; private logger; constructor(options?: Partial, logger?: Logger); install(app: HttpApp, options?: MetricsPluginOptions): Promise; uninstall(app: HttpApp): void; beforeStart(app: HttpApp): void; afterStart(app: HttpApp): void; beforeStop(app: HttpApp): void; afterStop(app: HttpApp): void; gracefulShutdown(app: HttpApp, signals?: string[]): Promise; getCollector(): MetricsCollector; getMetricsData(): any; private registerMetricsEndpoint; private removeMetricsEndpoint; private registerSystemMetrics; private collectMetrics; private formatPrometheusMetrics; private formatTextMetrics; } export default MetricsPlugin;