import type { AgentSpan } from '../types/trace.js'; import type { TraceSink } from './TraceStore.js'; export interface OtelTraceSinkOptions { endpoint: string; headers?: Record; serviceName?: string; batchSize?: number; fetch?: typeof fetch; } export declare class OtelTraceSink implements TraceSink { private readonly options; private readonly pending; private exporting?; constructor(options: OtelTraceSinkOptions); write(span: AgentSpan): Promise | void; flush(): Promise; private export; } export declare function otelSink(options: OtelTraceSinkOptions): OtelTraceSink; export interface LangfuseSinkOptions { endpoint?: string; publicKey: string; secretKey: string; serviceName?: string; batchSize?: number; fetch?: typeof fetch; } export declare function langfuseSink(options: LangfuseSinkOptions): OtelTraceSink; export declare function toOtlpPayload(spans: AgentSpan[], serviceName?: string): { resourceSpans: { resource: { attributes: { key: string; value: { stringValue: string; }; }[]; }; scopeSpans: { scope: { name: string; }; spans: { name: string; kind: number; startTimeUnixNano: string; endTimeUnixNano: string; attributes: ({ key: string; value: { boolValue: boolean; intValue?: undefined; doubleValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { intValue: string; boolValue?: undefined; doubleValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { doubleValue: number; boolValue?: undefined; intValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { stringValue: string; boolValue?: undefined; intValue?: undefined; doubleValue?: undefined; }; })[]; events: { name: string; timeUnixNano: string; attributes: ({ key: string; value: { boolValue: boolean; intValue?: undefined; doubleValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { intValue: string; boolValue?: undefined; doubleValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { doubleValue: number; boolValue?: undefined; intValue?: undefined; stringValue?: undefined; }; } | { key: string; value: { stringValue: string; boolValue?: undefined; intValue?: undefined; doubleValue?: undefined; }; })[]; }[]; status: { code: number; }; parentSpanId?: string | undefined; traceId: string; spanId: string; }[]; }[]; }[]; };