//! Side-effect-only observer trait for per-note arrivals during sync.
use Box;
use async_trait;
use NoteAttachments;
use crateClientError;
use crateCommittedNote;
use crateStateSyncUpdate;
/// Per-note + post-sync side-channel into [`crate::sync::StateSync`].
/// Attach via `StateSync::with_note_observer(...)`. Multiple observers
/// run independently; errors are logged, never abort sync.