import { SpanProcessor } from '@opentelemetry/sdk-trace-base';
import { Resource } from '@opentelemetry/resources';
import { SimplePlugin } from '@temporalio/plugin';
import { ReplayWorkerOptions, WorkerOptions } from '@temporalio/worker';
import { InterceptorOptions } from './client';
/**
 * Configuration options for {@link OpenTelemetryPlugin}.
 *
 * @experimental Plugins is an experimental feature; APIs may change without notice.
 */
export interface OpenTelemetryPluginOptions extends InterceptorOptions {
    /** OpenTelemetry resource attributes to attach to exported spans */
    readonly resource: Resource;
    /** Exporter used to send spans to a tracing backend */
    readonly spanProcessor: SpanProcessor;
}
/**
 * A plugin that adds OpenTelemetry tracing.
 *
 * Configures Client, Activity, and Workflow interceptors for trace propagation and injects
 * a span exporter sink for Workflow spans.
 *
 * @experimental Plugins is an experimental feature; APIs may change without notice.
 */
export declare class OpenTelemetryPlugin extends SimplePlugin {
    readonly otelOptions: OpenTelemetryPluginOptions;
    constructor(otelOptions: OpenTelemetryPluginOptions);
    configureWorker(options: WorkerOptions): WorkerOptions;
    configureReplayWorker(options: ReplayWorkerOptions): ReplayWorkerOptions;
    private injectSinks;
}
