export interface RunCompletionInput { startedAt: string; requestedFinishedAt?: string; requestedDurationMs?: number; serverNow: Date; } export interface NormalizedRunCompletion { finishedAt: string; durationMs: number | undefined; updatedAt: string; } /** * Treat the control-plane clock as authoritative while retaining a bounded * runner timestamp as evidence. In the normal case, where startedAt is not * ahead of the server clock, finishedAt is clamped into [startedAt, serverNow]. * A backwards server-clock jump fails safe at serverNow and yields duration 0. */ export declare function normalizeRunCompletion(input: RunCompletionInput): NormalizedRunCompletion;