import * as _kortyx_hooks from '@kortyx/hooks'; import { KortyxTelemetryService, KortyxTelemetryConfig } from '@kortyx/hooks'; type DiagnosticDeliveryState = "pending" | "available" | "rejected" | "dropped" | "spool_failed"; type CreateKortyxTelemetryAdapterOptions = { /** Telemetry API base URL. Defaults to https://api.kortyx.io (Kortyx Cloud). */ endpoint?: string | undefined; apiKey: string; environment: string; service: KortyxTelemetryService; /** Optional replacement or suppression of captured error diagnostics. */ error?: _kortyx_hooks.KortyxTraceErrorProjection; /** Complete redacted diagnostics stored by Studio's diagnostic API; enabled by default. */ diagnostics?: { /** Set false to disable complete diagnostic capture and uploads. */ enabled?: boolean; /** Optional secure persistent queue for Node process-restart recovery. */ spoolDirectory?: string; maxQueueBytes?: number; }; captureContent?: KortyxTelemetryConfig["captureContent"] | undefined; metadata?: Record | undefined; tags?: string[] | undefined; flushIntervalMs?: number | undefined; maxQueueSize?: number | undefined; fetch?: typeof globalThis.fetch | undefined; }; type KortyxTelemetryAdapter = KortyxTelemetryConfig & { flush: () => Promise; flushDiagnostics: (timeoutMs?: number) => Promise<{ timedOut: boolean; pending: number; pendingBytes: number; dropped: number; states: Record; }>; getDroppedEventCount: () => number; getPermanentDeliveryFailureCount: () => number; getDiagnosticDeliveryState: (id: string) => DiagnosticDeliveryState | undefined; getDroppedDiagnosticCount: () => number; }; /** * Creates the optional Kortyx Studio HTTP adapter. Execution paths only enqueue * telemetry; delivery remains best-effort and cannot fail a workflow. */ declare function createKortyxTelemetryAdapter(providedOptions: CreateKortyxTelemetryAdapterOptions): KortyxTelemetryAdapter; export { type CreateKortyxTelemetryAdapterOptions, type KortyxTelemetryAdapter, createKortyxTelemetryAdapter };