use {crate::chaincfg::chainhash::Hash, std::collections::HashMap};
#[derive(Default)]
#[allow(clippy::type_complexity)]
pub struct NotificationHandlers {
pub on_client_connected: Option<fn()>,
pub on_block_connected: Option<fn(block_header: Vec<u8>, transactions: Vec<Vec<u8>>)>,
pub on_block_disconnected: Option<fn(block_header: Vec<u8>)>,
pub on_work: Option<fn(data: Vec<u8>, target: Vec<u8>, reason: String)>,
pub on_relevant_tx_accepted: Option<fn(transaction: Vec<u8>)>,
pub on_reorganization:
Option<fn(old_hash: Hash, old_height: i32, new_hash: Hash, new_height: i32)>,
pub on_winning_tickets: Option<fn(block_hash: Hash, block_height: i64, tickets: Vec<Hash>)>,
pub on_spent_and_missed_tickets:
Option<fn(hash: Hash, height: i64, stake_diff: i64, tickets: HashMap<Hash, bool>)>,
pub on_new_tickets: Option<fn(hash: Hash, height: i64, stake_diff: i64, tickets: Vec<Hash>)>,
pub on_tx_accepted: Option<fn(hash: Hash, amount: crate::dcrutil::amount::Amount)>,
pub on_tx_accepted_verbose: Option<fn(tx_details: crate::dcrjson::result_types::TxRawResult)>,
pub on_unknown_notification:
Option<fn(method: String, params: crate::dcrjson::result_types::JsonResponse)>,
}