import type { StreamLifecycleObserver } from "./types.js"; /** Bounded metric sink used by the lifecycle observer. */ export interface StreamLifecycleMetricSink { recordOutcome(attributes: Record): void; recordDeadline(attributes: Record): void; recordTelemetry(attributes: Record): void; recordRepair(attributes: Record): void; recordShadowDivergence(attributes: Record): void; recordDuration(kind: "attempt" | "first_progress" | "semantic_idle" | "tool_input" | "tool_execution", durationMs: number, attributes: Record): void; } /** Minimal span surface the observer may decorate. */ export interface StreamLifecycleSpanTarget { setAttributes(attributes: Record): unknown; } /** Create a fail-open bounded-label lifecycle observer. */ export declare function createStreamLifecycleObserver(input: { provider?: string; model?: string; mode: "legacy" | "shadow" | "active"; sink?: StreamLifecycleMetricSink; span?: StreamLifecycleSpanTarget; }): StreamLifecycleObserver; /** Record a bounded shadow divergence report. */ export declare function recordStreamLifecycleShadowReport(input: { report: { count: number; categories: readonly string[]; }; mode: "shadow"; sink?: StreamLifecycleMetricSink; }): void; //# sourceMappingURL=observability.d.ts.map