import * as otel from '@opentelemetry/api';
import { Next, WorkflowClientInterceptor, WorkflowSignalInput, WorkflowStartInput } from '@temporalio/client';
export interface InterceptorOptions {
    readonly tracer?: otel.Tracer;
}
/**
 * Intercepts calls to start a Workflow.
 *
 * Wraps the operation in an opentelemetry Span and passes it to the Workflow via headers.
 */
export declare class OpenTelemetryWorkflowClientInterceptor implements WorkflowClientInterceptor {
    protected readonly tracer: otel.Tracer;
    constructor(options?: InterceptorOptions);
    start(input: WorkflowStartInput, next: Next<WorkflowClientInterceptor, 'start'>): Promise<string>;
    signal(input: WorkflowSignalInput, next: Next<WorkflowClientInterceptor, 'signal'>): Promise<void>;
}
