import type { EventAdapterIdV3 } from "./adapter-id.js"; import { type AdapterSignalV3, type CapabilitySupportV3 } from "./capabilities.js"; import type { TurnHarnessV3, TurnInferenceV3, TurnUsageV3 } from "./contract.js"; export type TelemetryObservationV3 = { state: "observed"; value: T; attestation: "native" | "derived" | "inferred"; confidence: "exact" | "high" | "medium" | "low"; } | { state: "unsupported"; capability: string; } | { state: "expected_but_missing"; capability: string; reason: string; }; interface ContextMeasurementClockV3 { measured_at: string; method: string; } export type ContextMeasurementV3 = ContextMeasurementClockV3 & ({ used_tokens: number; limit_tokens: number; remaining_tokens?: number; } | { used_percent: number; remaining_percent?: number; }); export interface TurnTelemetryV3 { usage: TelemetryObservationV3; inference: TelemetryObservationV3; context: TelemetryObservationV3; /** Private producer metadata; the context event persists only its safe fields. */ context_provenance?: ContextTelemetryProvenanceV3; } export interface ContextTelemetryProvenanceV3 { source_event: string; source_witness?: string; runtime_version?: string; attestation: "native" | "derived" | "inferred"; confidence: "exact" | "high" | "medium" | "low"; } export type TurnTelemetryCapabilitySupportV3 = Partial, "model_usage" | "inference_timing" | "context_usage">>; export interface HarnessTimingAccumulatorV3 { hook_time_ms: number; hook_count: number; slowest_hook?: string; slowest_hook_ms: number; } /** Extract only telemetry explicitly reported by a hook/status payload. */ export declare function extractTurnTelemetryV3(adapter: EventAdapterIdV3, payload: Record, observedAt?: string, support?: TurnTelemetryCapabilitySupportV3): TurnTelemetryV3; export declare function emptyHarnessTimingV3(): HarnessTimingAccumulatorV3; export declare function recordHarnessTimingV3(accumulator: HarnessTimingAccumulatorV3, hook: string, durationMs: number): HarnessTimingAccumulatorV3; export declare function harnessObservationV3(accumulator: HarnessTimingAccumulatorV3): TelemetryObservationV3; export {}; //# sourceMappingURL=turn-telemetry.d.ts.map