import { AccountId, Balance, BlockNumber, Exposure, Index, RewardDestination, SetIndex, StakingLedger, ValidatorPrefs, Vote, VoteIndex } from '@plugnet/types/interfaces'; import BN from 'bn.js'; export interface DerivedBalances { accountId: AccountId; accountNonce: Index; freeBalance: BN; lockedBalance: BN; availableBalance: BN; reservedBalance: BN; votingBalance: BN; vestedBalance: BN; } export declare type DerivedBalancesMap = Record; export interface DerivedContractFees { callBaseFee: BN; contractFee: BN; createBaseFee: BN; creationFee: BN; rentByteFee: BN; rentDepositOffset: BN; tombstoneDeposit: BN; transactionBaseFee: BN; transactionByteFee: BN; transferFee: BN; } export interface DerivedElectionsInfo { members: Record; candidates: AccountId[]; candidateCount: BN; desiredSeats: BN; nextVoterSet: SetIndex; termDuration: BlockNumber; voteCount: VoteIndex; voterCount: SetIndex; } export interface DerivedFees { creationFee: BN; existentialDeposit: BN; transactionBaseFee: BN; transactionByteFee: BN; transferFee: BN; } export interface RecentlyOffline { blockNumber: BlockNumber; count: BN; } export declare type DerivedRecentlyOffline = Record; export interface DerivedReferendumVote { accountId: AccountId; balance: Balance; vote: Vote; } export interface DerivedSessionInfo { currentEra: BN; currentIndex: BN; eraLength: BN; eraProgress: BN; isEpoch: boolean; lastEraLengthChange: BN; lastLengthChange: BN; sessionLength: BN; sessionsPerEra: BN; sessionProgress: BN; } export declare type DerivedStakingAccount = [AccountId, DerivedStakingOnlineStatus]; export declare type DerivedStakingAccounts = DerivedStakingAccount[]; export interface DerivedStakingOnlineStatus { online?: { isOnline: boolean; blockNumber?: BlockNumber; }; offline?: { blockNumber: BlockNumber; count: BN; }[]; } export interface DerivedStaking extends DerivedStakingOnlineStatus { accountId: AccountId; controllerId?: AccountId; nextSessionId?: AccountId; nextSessionIds: AccountId[]; nominators?: AccountId[]; redeemable?: BN; rewardDestination?: RewardDestination; sessionId?: AccountId; sessionIds: AccountId[]; stakers?: Exposure; stakingLedger?: StakingLedger; stashId?: AccountId; unlocking?: DerivedUnlocking; validatorPrefs?: ValidatorPrefs; } export declare type DerivedUnlocking = { remainingBlocks: BN; value: BN; }[]; export interface VoterPosition { globalIndex: BN; index: BN; setIndex: SetIndex; } export declare type DerivedVoterPositions = Record;