import { MaybePromise } from '@opentelemetry/resources'; import { Span } from '@opentelemetry/api'; export { Span } from '@opentelemetry/api'; import { Observable } from 'rxjs'; declare class AppOTelSDK { private sdk; private logProcessor; private spanProcessor; private logger; private isStarted; private static CUSTOM_FORMAT_REGEX; static emptySpan: Span; start(): void; /** * [框架专用 API] 开启一个根 Span (Root Span) * 该方法专供 Middleware/Interceptor 使用 * wrapper 形式 */ startContext(headers: Record, name: string, fn: (span: Span) => void): void; /** * [框架专用 API] 开启一个根 Span (Root Span) * 该方法专供 Middleware/Interceptor 使用 * wrapper 形式 */ startRootTrace(headers: Record, name: string): Span; /** * [用户专用 API] 手动打点 (Child Span) * 用户在 Service 中调用此方法,会自动挂载到 Middleware 创建的 Root Span 下 */ trace(name: string, fn: (span: Span) => MaybePromise | Observable): MaybePromise | Observable; /** * [Log API] 自动关联 TraceContext */ log(level: string, message: string, extra?: Record, spanAttr?: { traceId: string; spanId: string; }): void; /** * 启动 Span 的工厂函数 * @param {string} name - Span 名称 * @param {Object} [parentSpan] - (可选) 父 Span 对象 */ startTrace(name: string, parentSpan?: Span): Span; /** * 丢弃 Span 的工厂函数 * @param {Span} span - 要被丢弃的 Span 对象 */ static dropTraceSpan(span: Span): void; /** * [框架专用] 强制刷新 */ flush(): Promise; } declare const appSdk: AppOTelSDK; export { AppOTelSDK, appSdk };