import '../../timezone'; import type { IncomingMessage } from 'node:http'; import { type AttributeValue } from '@opentelemetry/api'; import { type Instrumentation } from '@opentelemetry/instrumentation'; import { type MetricReader } from '@opentelemetry/sdk-metrics'; import { type SpanProcessor } from '@opentelemetry/sdk-trace-base'; export * from './helpers'; export type HttpIncomingRequestAttributeHook = (request: IncomingMessage) => Record; export interface PyroscopeOptions { /** * Start Pyroscope only after TSF has installed an OpenTelemetry trace provider. * `true` uses the Pyroscope SDK's environment-based configuration. */ enabled?: boolean; appName?: string; serverAddress?: string; tags?: Record; basicAuthUser?: string; basicAuthPassword?: string; tenantID?: string; authToken?: string; flushIntervalMs?: number; wall?: { samplingDurationMs?: number; samplingIntervalMicros?: number; collectCpuTime?: boolean; }; heap?: { samplingIntervalBytes?: number; stackDepth?: number; }; } export interface TelemetryInitOptions { serviceName?: string; serviceVersion?: string; disabled?: boolean; instrumentations?: Instrumentation[]; httpIncomingRequestAttributeHook?: HttpIncomingRequestAttributeHook; enableRedisInstrumentation?: boolean; enableMetricsEndpoint?: boolean; spanProcessors?: SpanProcessor[]; metricReaders?: MetricReader[]; pyroscope?: boolean | PyroscopeOptions; } export type IOtelOptions = TelemetryInitOptions; export declare function init(options?: TelemetryInitOptions): void; export declare function shutdownTelemetry(): Promise; export declare function resetTelemetryForTests(): void; //# sourceMappingURL=index.d.ts.map