///
import type { AccountId, Balance, EraIndex, Exposure, RewardDestination, RewardPoint, StakingLedger, ValidatorPrefs } from '@polkadot/types/interfaces';
import type { BN } from '@polkadot/util';
import type { DeriveSessionIndexes } from '../session/types';
export declare type DeriveEraValPoints = Record;
export declare type DeriveEraValPrefs = Record;
export declare type DeriveEraValSlash = Record;
export interface DeriveEraPoints {
era: EraIndex;
eraPoints: RewardPoint;
validators: DeriveEraValPoints;
}
export interface DeriveEraPrefs {
era: EraIndex;
validators: DeriveEraValPrefs;
}
export interface DeriveEraRewards {
era: EraIndex;
eraReward: Balance;
}
export interface DeriveEraSlashes {
era: EraIndex;
nominators: DeriveEraValSlash;
validators: DeriveEraValSlash;
}
export interface DeriveStakerPoints {
era: EraIndex;
eraPoints: RewardPoint;
points: RewardPoint;
}
export interface DeriveOwnExposure {
clipped: Exposure;
era: EraIndex;
exposure: Exposure;
}
export interface DeriveEraExposureNominating {
validatorId: string;
validatorIndex: number;
}
export declare type DeriveEraNominatorExposure = Record;
export declare type DeriveEraValidatorExposure = Record;
export interface DeriveEraExposure {
era: EraIndex;
nominators: DeriveEraNominatorExposure;
validators: DeriveEraValidatorExposure;
}
export interface DeriveStakerExposure {
era: EraIndex;
isEmpty: boolean;
isValidator: boolean;
nominating: DeriveEraExposureNominating[];
validators: DeriveEraValidatorExposure;
}
export interface DeriveStakerPrefs {
era: EraIndex;
validatorPrefs: ValidatorPrefs;
}
export interface DeriveStakerRewardValidator {
total: Balance;
value: Balance;
}
export interface DeriveStakerReward {
era: EraIndex;
eraReward: Balance;
isEmpty: boolean;
isValidator: boolean;
nominating: DeriveEraExposureNominating[];
validators: Record;
}
export interface DeriveStakerSlashes {
era: EraIndex;
total: Balance;
}
export declare type DeriveOwnSlashes = DeriveStakerSlashes;
export interface DeriveStakingKeys {
nextSessionIds: AccountId[];
sessionIds: AccountId[];
}
export interface DeriveStakingValidators {
nextElected: AccountId[];
validators: AccountId[];
}
export interface DeriveStakingStash {
controllerId: AccountId | null;
exposure: Exposure;
nominators: AccountId[];
rewardDestination: RewardDestination;
stashId: AccountId;
validatorPrefs: ValidatorPrefs;
}
export interface DeriveStakingQuery extends DeriveStakingStash {
accountId: AccountId;
stakingLedger: StakingLedger;
}
export interface DeriveStakingElected {
info: DeriveStakingQuery[];
nextElected: AccountId[];
validators: AccountId[];
}
export interface DeriveStakingWaiting {
info: DeriveStakingQuery[];
waiting: AccountId[];
}
export interface DeriveUnlocking {
remainingEras: BN;
value: Balance;
}
export interface DeriveStakingAccount extends DeriveStakingQuery, DeriveStakingKeys {
redeemable?: Balance;
unlocking?: DeriveUnlocking[];
}
export interface DeriveStakingOverview extends DeriveSessionIndexes {
nextElected: AccountId[];
validators: AccountId[];
}
export interface StakingQueryFlags {
withController?: boolean;
withDestination?: boolean;
withExposure?: boolean;
withLedger?: boolean;
withNominations?: boolean;
withPrefs?: boolean;
}