use {
solana_clock::Slot,
std::sync::{Arc, RwLock},
};
pub trait SlotStatusNotifierInterface {
fn notify_slot_confirmed(&self, slot: Slot, parent: Option<Slot>);
fn notify_slot_processed(&self, slot: Slot, parent: Option<Slot>);
fn notify_slot_rooted(&self, slot: Slot, parent: Option<Slot>);
fn notify_first_shred_received(&self, slot: Slot);
fn notify_completed(&self, slot: Slot);
fn notify_created_bank(&self, slot: Slot, parent: Slot);
fn notify_slot_dead(&self, slot: Slot, parent: Slot, error: String);
}
pub type SlotStatusNotifier = Arc<RwLock<dyn SlotStatusNotifierInterface + Sync + Send>>;