import { _ChainInfo } from '@soul-wallet/chain-list/types'; import { TransactionError } from '@soul-wallet/extension-base/background/errors/TransactionError'; import { ChainStakingMetadata, NominationPoolInfo, NominatorMetadata, UnstakingInfo, ValidatorInfo } from '../../../../background/KoniTypes'; import { PalletNominationPoolsPoolMember } from '../bonding/utils'; import { _SubstrateApi } from '@soul-wallet/extension-base/services/chain-service/types'; import { Codec } from '@polkadot/types/types'; export interface PalletStakingNominations { targets: string[]; submittedIn: number; suppressed: boolean; } export interface UnlockingChunk { value: number; era: number; } export interface PalletStakingStakingLedger { stash: string; total: number; active: number; unlocking: UnlockingChunk[]; claimedRewards: number[]; } export declare function validateRelayUnbondingCondition(amount: string, chainStakingMetadata: ChainStakingMetadata, nominatorMetadata: NominatorMetadata): TransactionError[]; export declare function validatePoolBondingCondition(chainInfo: _ChainInfo, amount: string, selectedPool: NominationPoolInfo, address: string, chainStakingMetadata: ChainStakingMetadata, nominatorMetadata?: NominatorMetadata): TransactionError[]; export declare function validateRelayBondingCondition(chainInfo: _ChainInfo, amount: string, selectedValidators: ValidatorInfo[], address: string, chainStakingMetadata: ChainStakingMetadata, nominatorMetadata?: NominatorMetadata): TransactionError[]; export declare function subscribeRelayChainStakingMetadata(chainInfo: _ChainInfo, substrateApi: _SubstrateApi, callback: (chain: string, rs: ChainStakingMetadata) => void): Promise; export declare function getRelayChainStakingMetadata(chainInfo: _ChainInfo, substrateApi: _SubstrateApi): Promise; export declare function subscribeRelayChainNominatorMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi, ledger: PalletStakingStakingLedger): Promise; export declare function getRelayChainNominatorMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi): Promise; export declare function subscribeRelayChainPoolMemberMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi, poolMemberInfo: PalletNominationPoolsPoolMember): Promise; export declare function getRelayChainPoolMemberMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi): Promise; export declare function getRelayValidatorsInfo(chain: string, substrateApi: _SubstrateApi, decimals: number, chainStakingMetadata: ChainStakingMetadata): Promise; export declare function getRelayPoolsInfo(chain: string, substrateApi: _SubstrateApi): Promise; export declare function getRelayBondingExtrinsic(substrateApi: _SubstrateApi, amount: string, targetValidators: ValidatorInfo[], chainInfo: _ChainInfo, address: string, nominatorMetadata?: NominatorMetadata, bondDest?: string): Promise>; export declare function getRelayUnbondingExtrinsic(substrateApi: _SubstrateApi, amount: string, nominatorMetadata: NominatorMetadata): Promise>; export declare function getRelayWithdrawalExtrinsic(substrateApi: _SubstrateApi, address: string): Promise>; export declare function getRelayCancelWithdrawalExtrinsic(substrateApi: _SubstrateApi, selectedUnstaking: UnstakingInfo): Promise>; export declare function getPoolingClaimRewardExtrinsic(substrateApi: _SubstrateApi, bondReward?: boolean): Promise>; export declare function getPoolingBondingExtrinsic(substrateApi: _SubstrateApi, amount: string, selectedPoolId: number, nominatorMetadata: NominatorMetadata | undefined): Promise>; export declare function getPoolingUnbondingExtrinsic(substrateApi: _SubstrateApi, amount: string, nominatorMetadata: NominatorMetadata): Promise>; export declare function getPoolingWithdrawalExtrinsic(substrateApi: _SubstrateApi, nominatorMetadata: NominatorMetadata): Promise>;