import { AttributeValue, Tracer } from '@opentelemetry/api';
import { NodeSDKConfiguration } from '@opentelemetry/sdk-node';
import { O as OpikClient, S as Span, T as Trace } from '../Client-CgkZJ_1L.cjs';
import 'stream';

type SpanExporter = NodeSDKConfiguration["traceExporter"];
type ExportFunction = SpanExporter["export"];
type ReadableSpan = Parameters<ExportFunction>[0][0];
type TelemetrySettings = {
    isEnabled?: boolean;
    recordInputs?: boolean;
    recordOutputs?: boolean;
    functionId?: string;
    metadata?: Record<string, AttributeValue>;
    tracer?: Tracer;
};
type OpikExporterSettings = TelemetrySettings & {
    name?: string;
};
declare class OpikExporter implements SpanExporter {
    private traces;
    private spans;
    private client;
    constructor({ client }?: {
        client?: OpikClient;
    });
    private getSpanInput;
    private getSpanOutput;
    private getSpanMetadata;
    private getSpanUsage;
    processSpan: ({ otelSpan, parentSpan, trace, }: {
        otelSpan: ReadableSpan;
        parentSpan?: Span;
        trace: Trace;
    }) => Span;
    shutdown: () => Promise<void>;
    forceFlush: () => Promise<void>;
    export: ExportFunction;
    static getSettings(settings: OpikExporterSettings): TelemetrySettings;
}

export { OpikExporter };
