import type { SpanSummaryV3 } from "./contract.js"; export interface SpanClockV3 { observed_at: string; monotonic_ns?: string; } export interface OpenSpanStateV3 { span_id: `span_${string}`; parent_span_id?: `span_${string}`; opened_at: string; boot_id: `boot_${string}`; opened_monotonic_ns?: string; open_event_id?: `evt_${string}`; } export interface OpenSpanV3Input { span_id: `span_${string}`; parent_span_id?: `span_${string}`; boot_id: `boot_${string}`; clock: SpanClockV3; open_event_id?: `evt_${string}`; } export interface CloseSpanV3Input { boot_id: `boot_${string}`; clock: SpanClockV3; recovery_reason?: string; } export interface RecoverSpanUpperBoundV3Input { boot_id: `boot_${string}`; clock: SpanClockV3; } /** Capture a cross-process, boot-anchored monotonic reading where the host exposes one. */ export declare function captureSpanClockV3(options?: { now?: Date; platform?: NodeJS.Platform; linux_uptime?: string; }): SpanClockV3; /** Convert Linux's boot-relative `/proc/uptime` value without floating-point drift. */ export declare function linuxUptimeNanosecondsV3(value: string): string; export declare function openSpanStateV3(input: OpenSpanV3Input): OpenSpanStateV3; /** * Materialize a self-contained terminal summary. * * Same-boot monotonic readings are exact. Cross-boot or unsupported hosts * fall back to a high-confidence wall delta. Regressions and recovery remain * explicit missing/unknown observations; they are never coerced to zero. */ export declare function closeSpanStateV3(span: OpenSpanStateV3, input: CloseSpanV3Input): SpanSummaryV3; /** * Bound a recovered span's elapsed interval only when two same-boot monotonic * readings prove it. The interval is not evidence of tool execution time. */ export declare function recoverSpanUpperBoundV3(span: OpenSpanStateV3, input: RecoverSpanUpperBoundV3Input): SpanSummaryV3["duration_ms"]; //# sourceMappingURL=span-state.d.ts.map