/** A timestamp that captures both causal ordering and wall-clock uncertainty. * Gateway-issued — agents cannot forge these. The gateway is the time authority. */ export interface HybridTimestamp { /** Monotonically increasing causal counter (Lamport clock component). * Guarantees causal ordering: if A happened-before B, A.logicalTime < B.logicalTime */ logicalTime: number; /** Unix epoch ms — lower bound of wall clock (NTP time - drift bound). * The earliest this event could have occurred in real time. */ wallClockEarliest: number; /** Unix epoch ms — upper bound of wall clock (NTP time + drift bound). * The latest this event could have occurred in real time. */ wallClockLatest: number; /** Gateway that issued this timestamp. Different gateways have * independent logical clocks — cross-gateway comparison uses wall clock bounds. */ gatewayId: string; } /** Pairs a hybrid timestamp of issuance with a hard TTL expiry. * Used on all time-bounded artifacts: escrows, delegations, attestations. */ export interface TemporalBound { /** When this artifact was issued (hybrid timestamp) */ issuedAt: HybridTimestamp; /** Absolute Unix epoch ms — hard TTL. Artifact invalid after this. */ expiresAt: number; } /** Unified temporal governance for all governance artifacts. * Replaces 9 ad-hoc TTL fields scattered across different types * with a single coherent temporal model. * * Example lifecycle: * effectiveAt → validFrom → observedAt → validUntil → challengeUntil → graceUntil * ↑ supersededAt (if replaced) */ export interface TemporalRights { /** ISO datetime — start of validity window */ validFrom: string; /** ISO datetime — end of validity window */ validUntil: string; /** ISO datetime — window for challenges (dispute, appeal). * After this, no new disputes can be filed against this artifact. */ challengeUntil?: string; /** ISO datetime — grace period after expiry. * Artifact is expired but existing operations can still complete. */ graceUntil?: string; /** ISO datetime — when this artifact was replaced by a newer version. * Set when a superseding artifact is created. */ supersededAt?: string; /** ISO datetime — when policy/amendment takes effect. * Can be in the future (scheduled activation). */ effectiveAt?: string; /** ISO datetime — when this event was first observed/recorded. * May differ from effectiveAt for retroactive recordings. */ observedAt?: string; } /** Result of comparing two hybrid timestamps. Because wall clocks have * uncertainty bounds, comparison can be definite or uncertain. */ export type TemporalOrdering = 'definitely_before' | 'definitely_after' | 'concurrent' | 'causally_before' | 'causally_after' | 'incomparable'; /** Result of checking whether an artifact is temporally valid. */ export interface TemporalValidation { /** Whether the artifact is currently within its validity window */ valid: boolean; /** Whether the artifact is in its grace period (expired but grace active) */ inGracePeriod: boolean; /** Whether the artifact has been superseded */ superseded: boolean; /** Whether the challenge window is still open */ challengeWindowOpen: boolean; /** Whether the artifact's effective date has been reached */ effective: boolean; errors: string[]; } /** A contiguous run of HybridTimestamps that belong to the same session. * Sessions are derived from a time-ordered stamp sequence by detecting * wall-clock gaps that exceed a configurable threshold (default 5 min). */ export interface SessionBoundary { /** The first timestamp of this session. */ start: HybridTimestamp; /** The last timestamp of this session. */ end: HybridTimestamp; /** Number of timestamps in this session (inclusive of start and end). */ eventCount: number; /** Gap in milliseconds from the previous session's end to this * session's start. Zero for the first session in the sequence. */ gapFromPreviousMs: number; } //# sourceMappingURL=time.d.ts.map