import { SpanKind } from '@opentelemetry/api'; import { Type } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces'; export interface TraceOptions { name?: string; attributes?: Record; kind?: SpanKind; root?: boolean; } export interface OpenTelemetryModuleOptions { autoInjectors?: Type[]; injectorsConfig?: Record; } export interface OpenTelemetryModuleAsyncOptions extends Pick { useFactory: (...args: any[]) => Promise | OpenTelemetryModuleOptions; inject?: any[]; } export interface EnhancerInfo { metadataKey: string; methodKey: string; traceName: string; globalToken: string | symbol; }