import type { ReadLedgerV3Result } from "./reader.js"; export declare const EVENT_V3_SAFETY_REDUCER_BUILD: "event-v3-safety-reducer-v2"; export type SafetyProjectionDiagnosticCodeV3 = "ledger_incomplete" | "duplicate_session_start" | "terminal_without_start" | "event_after_terminal" | "transition_without_live_subject" | "transition_prior_mismatch" | "authority_attribution_unverified" | "wait_end_without_start" | "claim_acquire_conflict" | "claim_release_without_acquire" | "decision_prior_mismatch" | "delegation_duplicate_start" | "delegation_complete_without_start" | "delegation_identity_mismatch"; export interface SafetyProjectionDiagnosticV3 { code: SafetyProjectionDiagnosticCodeV3; event_id?: string; generation_id?: string; subject_instance_id?: string; source_code?: string; authority_blocking: boolean; } export interface WaitProjectionV3 { wait_id: string; kind: string; started_event_id: string; started_at: string; authority_reference?: string; wake_at?: string; } export interface GenerationSafetyStateV3 { generation_id: string; instance_id: string; session_id: string; started_event_id: string; started_at: string; last_observed_at: string; attestation_id: string; phase: "live" | "terminal"; activity: "working" | "needs_input" | "idle" | "terminal"; last_event_id: string; last_segment_ordinal: number; last_byte_offset: number; task_state?: string; task_state_updated_at?: string; lifecycle_state?: string; lifecycle_state_updated_at?: string; presence_state?: string; presence_state_updated_at?: string; provisional_termination?: { observation: string; event_id: string; observed_at: string; }; terminal?: { event_id: string; observed_at: string; outcome: string; authority: "native" | "approved"; reason: string; }; waits: Record; progress_event_ids: string[]; last_context_event_id?: string; resume_count: number; } export interface ClaimProjectionV3 { key: string; subject_instance_id: string; actor_instance_id: string; target_digest: string; target_kind: string; target_display?: string; access: "read" | "write"; acquired_event_id: string; transaction_id: string; } export interface DelegationProjectionV3 { delegation_id: string; parent_generation_id: string; child_generation_id: string; role: string; started_event_id: string; completed_event_id?: string; outcome?: string; } export interface SafetyProjectionV3 { reducer_build_id: typeof EVENT_V3_SAFETY_REDUCER_BUILD; evidence_complete: boolean; history_complete: boolean; authority_safe: boolean; diagnostics: SafetyProjectionDiagnosticV3[]; generations: Record; current_generation_by_instance: Record; claims: Record; delegations: Record; decisions: Record; identities: Record; health: Record; } /** * Deterministically fold only contract-validated V3 rows. Physical ledger * order is authoritative; wall-clock values are display evidence, never the * conflict-resolution key. An incomplete source makes authority reads fail * closed even when the unaffected portions can still be shown diagnostically. */ export declare function reduceSafetyProjectionV3(read: ReadLedgerV3Result): SafetyProjectionV3; //# sourceMappingURL=projection.d.ts.map