import type { WorkflowManager } from "./workflow-manager.js"; interface LangfuseLike { trace(body?: Record): TraceLike; flushAsync(): Promise; shutdownAsync(): Promise; } interface TraceLike extends ObservationParentLike { update(body: Record): unknown; } interface ObservationParentLike { span(body: Record): SpanLike; generation(body: Record): GenerationLike; } interface SpanLike extends ObservationParentLike { update(body: Record): unknown; end?(body?: Record): unknown; } interface GenerationLike { update(body: Record): unknown; end?(body?: Record): unknown; } export interface WorkflowLangfuseConfig { enabled?: boolean; publicKey?: string; secretKey?: string; baseUrl?: string; flushAt?: number; flushIntervalMs?: number; } export interface TelemetryConfig { serviceName?: string; serviceVersion?: string; includePayloads?: boolean; langfuse?: WorkflowLangfuseConfig; } export interface WorkflowLangfuseTracingOptions { cwd?: string; /** Injectable for tests and callers; environment variables are used by default. */ config?: TelemetryConfig; /** Injectable for tests; defaults to `process.env`. */ env?: Record; /** Injectable for tests; defaults to a real Langfuse client when enabled. */ client?: LangfuseLike; /** Best-effort diagnostics hook. Never receives payloads or secrets. */ onError?: (message: string) => void; /** Autocompactor JSONL bridge. false disables file tailing; string overrides path. */ compactionEventsPath?: string | false; /** Poll interval for the autocompactor JSONL bridge. false disables polling and drains only on workflow events/close. */ compactionPollIntervalMs?: number | false; /** Grace period to let active background runs finish before shutdown detaches listeners. Defaults to 10 seconds. */ shutdownGraceMs?: number; } export interface WorkflowLangfuseTracingHandle { enabled: boolean; flush(): Promise; close(): Promise; } export declare function installWorkflowLangfuseTracing(manager: WorkflowManager, options?: WorkflowLangfuseTracingOptions): WorkflowLangfuseTracingHandle; export declare function workflowLangfuseTraceId(runId: string): string; export {};