use sp_runtime::traits::AtLeast32BitUnsigned;

pub trait ExposureListener<Balance: AtLeast32BitUnsigned, AccountId> {
    fn get_accounts_by_indexes(
        indexes: impl Iterator<Item = usize>,
    ) -> sp_std::prelude::Vec<AccountId>;
    fn get_account_by_index(index: usize) -> Option<AccountId>;
    fn get_total_exposure() -> Balance;
    fn get_validator_exposure(index: &AccountId) -> Balance;
}
