import type { AgentLoopUsage } from "../agent/production-agent.js"; import type { AgentChatEvent } from "../agent/types.js"; import type { ObservabilityConfig } from "./types.js"; /** Recursively walk a structured value and replace sensitive field * values with the literal string "[REDACTED]". Pure (returns a copy); * the original input is never mutated. Cycles are tolerated via a * small WeakSet seen-tracker that returns "[Circular]" for repeats. */ export declare function redactSensitiveFields(value: unknown): unknown; export declare function getObservabilityConfig(): Promise; export declare function instrumentAgentLoop(opts: { runAgentLoop: (loopOpts: { engine: any; model: string; systemPrompt: string; tools: any[]; messages: any[]; actions: Record; send: (event: AgentChatEvent) => void; signal: AbortSignal; onUsage?: (usage: AgentLoopUsage) => void; providerOptions?: any; runId?: string; }) => Promise; loopOpts: { engine: any; model: string; systemPrompt: string; tools: any[]; messages: any[]; actions: Record; send: (event: AgentChatEvent) => void; signal: AbortSignal; onUsage?: (usage: AgentLoopUsage) => void; providerOptions?: any; runId?: string; }; runId: string; threadId: string | null; /** Owner of this run; persisted on every span + summary so dashboard * reads can filter to a single user. Null for unauthenticated callers * (background tasks, etc.) — those rows aren't returned by per-user * reads. */ userId: string | null; config: ObservabilityConfig; metadata?: Record | null; experimentAssignments?: Array<{ experimentId: string; variantId: string; }>; modelSelectionSource?: string; delegation?: { protocol: "a2a" | "mcp"; callerApp?: string; taskId?: string; parentRunId?: string; parentTurnId?: string; }; /** Raw user-authored message before prompt/context enrichment. */ sentimentInput?: string; classifyError?: (error: unknown) => { status?: "success" | "error"; errorMessage?: string | null; metadata?: Record | null; } | null | undefined; }): Promise; //# sourceMappingURL=traces.d.ts.map