import { PrivacyConfig } from "../core/privacy.js"; import { AmplitudeAI } from "../client.js"; //#region src/integrations/opentelemetry.d.ts interface ExporterOptions { amplitudeAI: AmplitudeAI; /** * User ID for spans without an `amplitude.user_id` attribute. When unset, * such spans are sent with an anonymous device ID and session ID derived * from the span's trace ID (one per trace), never a shared constant. */ defaultUserId?: string; privacyConfig?: PrivacyConfig | null; /** * If set, only process spans whose instrumentation scope name is in this set. * By default any span with `gen_ai.*` attributes is processed. */ allowedScopes?: ReadonlySet | string[] | null; /** Instrumentation scope names to ignore (e.g. `['fastapi', 'sqlalchemy']`). */ blockedScopes?: ReadonlySet | string[] | null; } interface OTELSpan { name: string; kind?: number; attributes?: Record; startTimeUnixNano?: bigint | number; endTimeUnixNano?: bigint | number; status?: { code?: number; message?: string; }; parentSpanId?: string; spanContext?: () => { traceId: string; spanId: string; }; instrumentationScope?: { name?: string; }; instrumentationLibrary?: { name?: string; }; } declare class AmplitudeAgentExporter { private _ai; private _defaultUserId; private _privacyConfig; private _allowedScopes; private _blockedScopes; constructor(options: ExporterOptions); export(spans: OTELSpan[], resultCallback: (result: { code: number; }) => void): void; shutdown(): Promise; forceFlush(): Promise; private _shouldProcess; private _processSpan; } declare const AmplitudeGenAIExporter: typeof AmplitudeAgentExporter; declare const AmplitudeSpanExporter: typeof AmplitudeAgentExporter; //#endregion export { AmplitudeAgentExporter, AmplitudeGenAIExporter, AmplitudeSpanExporter, ExporterOptions }; //# sourceMappingURL=opentelemetry.d.ts.map