import * as _alepha_core1 from "alepha";
import * as _alepha_core0 from "alepha";
import { Alepha } from "alepha";
import * as _alepha_server0 from "alepha/server";
import { Histogram, Registry } from "prom-client";

//#region src/providers/ServerMetricsProvider.d.ts
declare class ServerMetricsProvider {
  protected readonly register: Registry;
  protected readonly alepha: Alepha;
  protected httpRequestDuration?: Histogram<string>;
  readonly options: ServerMetricsProviderOptions;
  readonly metrics: _alepha_server0.RouteDescriptor<_alepha_server0.RequestConfigSchema>;
  protected readonly onStart: _alepha_core1.HookDescriptor<"start">;
  protected readonly onRequest: _alepha_core1.HookDescriptor<"server:onRequest">;
  protected readonly onResponse: _alepha_core1.HookDescriptor<"server:onResponse">;
}
interface ServerMetricsProviderOptions {
  prefix?: string;
  gcDurationBuckets?: number[];
  eventLoopMonitoringPrecision?: number;
  labels?: object;
}
//# sourceMappingURL=ServerMetricsProvider.d.ts.map
//#endregion
//#region src/index.d.ts
/**
 * This module provides prometheus metrics for the Alepha server.
 * Metrics are exposed at the `/metrics` endpoint.
 *
 * @see {@link ServerMetricsProvider}
 * @module alepha.server.metrics
 */
declare const AlephaServerMetrics: _alepha_core0.Service<_alepha_core0.Module>;
//# sourceMappingURL=index.d.ts.map

//#endregion
export { AlephaServerMetrics, ServerMetricsProvider, ServerMetricsProviderOptions };
//# sourceMappingURL=index.d.ts.map