import { type IMidwayContainer } from '@midwayjs/core'; import { type Application, type Context, type RouterInfoLite } from '@mwcp/share'; import type { Context as TraceContext, Span } from '@opentelemetry/api'; import type { OtelComponent } from '../component.js'; import type { Config, TraceScopeType } from '../types.js'; export declare class TraceServiceBase { app: Application; applicationContext: IMidwayContainer; config: Config; otel: OtelComponent; readonly isStartedMap: WeakMap; readonly instanceId: symbol; readonly startTime: import("@waiting/shared-types").ISO8601String; readonly routerInfoMap: WeakMap; getWebContext(): Context | undefined; getWebContextThenApp(): Context | Application; addRequestRouterInfo(webCtx: Context): Promise; getRequestRouterInfo(webCtx: TraceScopeType): RouterInfoLite | undefined; getRootTraceContext(scope: TraceScopeType): TraceContext | undefined; setRootContext(scope: TraceScopeType, traceContext: TraceContext): void; getActiveContext(): TraceContext; setActiveContext(traceContext: TraceContext, scope: TraceScopeType): void; delActiveContext(scope?: TraceScopeType): void; retrieveContextBySpanId(scope: TraceScopeType, spanId: string): TraceContext | undefined; retrieveTraceInfoBySpanId(spanId: string, scope: TraceScopeType | undefined): TraceInfo | undefined; retrieveParentTraceInfoBySpan(span: Span, scope?: TraceScopeType): TraceInfo | undefined; flush(): Promise; } export interface TraceInfo { span: Span; traceContext: TraceContext; }