import type { BigNumber } from "bignumber.js"; import type { Account, AccountRaw } from "./account"; import type { OperationExtra, OperationExtraRaw } from "./operation"; export type StakingDelegationStatus = "bonded" | "activating" | "unbonding" | "unbonded"; export type StakingDelegation = { validatorAddress: string; validatorId?: string; validatorName?: string; amount: BigNumber; pendingRewards: BigNumber; status: StakingDelegationStatus; }; export type StakingDelegationRaw = { validatorAddress: string; validatorId?: string; validatorName?: string; amount: string; pendingRewards: string; status: StakingDelegationStatus; }; export type StakingRedelegation = { validatorSrcAddress: string; validatorDstAddress: string; amount: BigNumber; completionDate: Date; }; export type StakingRedelegationRaw = { validatorSrcAddress: string; validatorDstAddress: string; amount: string; completionDate: string; }; export type StakingUnbonding = { validatorAddress: string; validatorName?: string; amount: BigNumber; completionDate: Date; withdrawId?: number; }; export type StakingUnbondingRaw = { validatorAddress: string; validatorName?: string; amount: string; completionDate: string; withdrawId?: string; }; export type StakingResources = { delegations: StakingDelegation[]; redelegations: StakingRedelegation[]; unbondings: StakingUnbonding[]; delegatedBalance: BigNumber; pendingRewardsBalance: BigNumber; unbondingBalance: BigNumber; validators?: StakingValidatorItem[]; }; export type StakingResourcesRaw = { delegations: StakingDelegationRaw[]; redelegations: StakingRedelegationRaw[]; unbondings: StakingUnbondingRaw[]; delegatedBalance: string; pendingRewardsBalance: string; unbondingBalance: string; validators?: StakingValidatorItem[]; }; export type StakingDelegationInfo = { address: string; amount: BigNumber; }; export type StakingDelegationInfoRaw = { address: string; amount: string; }; export type StakingValidatorItem = { validatorAddress: string; validatorId?: string; name: string; votingPower: number; commission: number; estimatedYearlyRewardsRate: number; tokens: string; }; export type StakingLikeNetworkInfo = { family: string; fees: BigNumber; }; export type StakingLikeNetworkInfoRaw = { family: string; fees: string; }; export type StakingOperationExtra = OperationExtra & { validators?: StakingDelegationInfo[]; validator?: StakingDelegationInfo; sourceValidator?: string; }; export declare function isStakingOperationExtra(op: OperationExtra): op is StakingOperationExtra; export type StakingOperationExtraRaw = OperationExtraRaw & { validators?: StakingDelegationInfoRaw[]; validator?: StakingDelegationInfoRaw; sourceValidator?: string; }; export declare function isStakingOperationExtraRaw(op: OperationExtraRaw): op is StakingOperationExtraRaw; export type StakingMappedDelegation = StakingDelegation & { formattedAmount: string; formattedPendingRewards: string; rank: number; validator: StakingValidatorItem | null | undefined; }; export type StakingMappedUnbonding = StakingUnbonding & { formattedAmount: string; validator: StakingValidatorItem | null | undefined; }; export type StakingMappedRedelegation = StakingRedelegation & { formattedAmount: string; validatorSrc: StakingValidatorItem | null | undefined; validatorDst: StakingValidatorItem | null | undefined; }; export type StakingMappedDelegationInfo = StakingDelegationInfo & { validator: StakingValidatorItem | null | undefined; formattedAmount: string; }; export type StakingMappedValidator = { rank: number; validator: StakingValidatorItem; }; export type StakingSearchFilter = (query: string) => (item: StakingMappedDelegation | StakingMappedValidator) => boolean; export declare function isStakingAccount(account: Account): account is StakingAccount; export type StakingAccount = Account & { stakingResources: StakingResources; }; export type StakingAccountRaw = AccountRaw & { stakingResources: StakingResourcesRaw; }; //# sourceMappingURL=staking.d.ts.map