export interface TemporalWorkContext { attemptId: number; generationKey: string; taskId: number; temporalEpoch: number; occurrenceKey: string; checkAt: number; revision: number; sourceChannel: string | null; sourceEventId: string | null; } interface TemporalReconcileBase { expected_revision: number; reason: string; } export interface TemporalResolvedInput extends TemporalReconcileBase { outcome: 'resolved'; status?: 'pending' | 'in_progress' | 'review' | 'blocked' | 'done' | 'cancelled'; due_at?: string | null; } export interface TemporalFinalNoUpdateInput extends TemporalReconcileBase { outcome: 'final_no_update'; evidence_summary: string; } export interface TemporalDeferredInput extends TemporalReconcileBase { outcome: 'deferred'; next_temporal_check_at: string; } export type TemporalReconcileInput = TemporalResolvedInput | TemporalFinalNoUpdateInput | TemporalDeferredInput; /** Host-only evidence identity validated against the active envelope/model run. */ export interface TemporalEvidenceAttestation { contextPacketId: string; contextPacketSha256: string; /** Packet creation time - freshness is a receipt, not a gate (S2). */ packetCreatedAt: number | null; } export interface TemporalEffectReceipt { workorderAttemptId: number; taskId: number; generationKey: string; occurrenceKey: string; outcome: 'resolved' | 'final_no_update' | 'deferred'; beforeRevision: number; afterRevision: number; changedFields: string[]; reason: string; attestationVersion: 0 | 1; contextPacketId: string; contextPacketSha256: string; packetCreatedAt: number | null; nextTemporalCheckAt: number | null; createdAt: number; } export interface TemporalReceiptExpectation { attemptId: number; taskId: number; generationKey: string; occurrenceKey: string; beforeRevision?: number; } /** Shared immutable receipt checks used by both live audit and recovery. */ export declare function temporalReceiptInvariantError(receipt: TemporalEffectReceipt, expected: TemporalReceiptExpectation): string | null; export declare function temporalNoUpdateScope(context: TemporalWorkContext): string; export {}; //# sourceMappingURL=temporal-effect.d.ts.map