import { Abstract, ModuleMetadata, Type } from '@nestjs/common'; import { Attributes } from '@opentelemetry/api-metrics'; import { RouteInfo } from '@nestjs/common/interfaces'; export declare type OpenTelemetryModuleOptions = { metrics?: OpenTelemetryMetrics; }; export interface IOpenTelemetryOptionsFactory { createOpenTelemetryOptions(): Promise | OpenTelemetryModuleOptions; } export interface IOpenTelemetryModuleAsyncOptions extends Pick { name?: string; useClass?: Type; useExisting?: Type; useFactory?: (...args: any[]) => Promise | OpenTelemetryModuleOptions; inject?: (string | symbol | ((...args: any[]) => any) | Type | Abstract)[]; } export declare type OpenTelemetryMetrics = { defaultMetrics?: boolean; hostMetrics?: boolean; apiMetrics?: { enable?: boolean; timeBuckets?: number[]; requestSizeBuckets?: number[]; responseSizeBuckets?: number[]; defaultAttributes?: Attributes; ignoreRoutes?: (string | RouteInfo)[]; ignoreUndefinedRoutes?: boolean; }; };