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