import BigNumberJs from 'bignumber.js'; import { BigNumberish, providers } from 'ethers'; import BaseService from '../commons/BaseService'; import { eEthereumTxType, transactionType } from '../commons/types'; import { PromiseOrValue } from '../types/common'; import { ApeCoinStaking } from './typechain/ApeCoinStaking'; export declare type NftDepositInfo = ApeCoinStaking.SingleNftStruct; export declare type PairDepositInfo = ApeCoinStaking.PairNftDepositWithAmountStruct; export declare type BakcWithdrawInfo = ApeCoinStaking.PairNftWithdrawWithAmountStruct; declare type SinglePoolsDataProps = { rewardsPerHour: BigNumberJs; capPerPosition: BigNumberJs; apy: BigNumberJs; paraStakedNFTAmount: number; paraStakedApeAmount: BigNumberJs; totalStakedApeAmount: BigNumberJs; }; declare type PoolsDataProps = { APE: SinglePoolsDataProps; BAYC: SinglePoolsDataProps; MAYC: SinglePoolsDataProps; BAKC: SinglePoolsDataProps; }; declare type OverviewProps = { total: SinglePoolsDataProps; } & PoolsDataProps; export declare const POOL_ID_MAP: { APE: number; BAYC: number; MAYC: number; BAKC: number; }; export declare class ApeStakingService extends BaseService { instance: ApeCoinStaking; constructor(provider: providers.Provider, address: string); depositApe(amount: string): Promise; depositBayc(depositInfos: NftDepositInfo[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; depositMayc(depositInfos: NftDepositInfo[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; claimBaycOrMayc(symbol: string, nfts: Array>, user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; claimBakc(baycPairs: ApeCoinStaking.PairNftStruct[], maycPairs: ApeCoinStaking.PairNftStruct[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; withdrawBaycOrMayc(symbol: string, tokenInfos: ApeCoinStaking.SingleNftStruct[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; withdrawBakc(baycPairs: BakcWithdrawInfo[], maycPairs: BakcWithdrawInfo[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; depositBAKC(baycPairs: PairDepositInfo[], maycPairs: PairDepositInfo[], user: string): Promise<{ tx: () => Promise; txType: eEthereumTxType; gas: import("../commons/types").GasResponse; }>; getPlatformStakingOverview(assetsStakedAddrs: string[]): Promise; mainToBakc(mainTokens: Array<{ type: 'MAYC' | 'BAYC'; tokenId: number; }>): Promise<([import("ethers").BigNumber, boolean] & { tokenId: import("ethers").BigNumber; isPaired: boolean; })[]>; getTokensApeStakingInfo(tokens: Array<{ type: 'BAYC' | 'MAYC' | 'BAKC'; id: string; userAddr: string; }>): Promise<{ stakeLimit: BigNumberJs; apy: BigNumberJs; stakedAmount: BigNumberJs; pendingRewards: BigNumberJs; }[]>; getUserApeStakingInfo(userAddr: string): Promise<{ baycStakes: { stakedAmount: BigNumberJs; pendingRewards: BigNumberJs; tokenId: number; mainTokenId: number; mainPoolId: number; apy: BigNumberJs; stakeLimit: BigNumberJs; }[]; maycStakes: { stakedAmount: BigNumberJs; pendingRewards: BigNumberJs; tokenId: number; mainTokenId: number; mainPoolId: number; apy: BigNumberJs; stakeLimit: BigNumberJs; }[]; bakcStakes: { stakedAmount: BigNumberJs; pendingRewards: BigNumberJs; tokenId: number; mainTokenId: number; mainPoolId: number; apy: BigNumberJs; stakeLimit: BigNumberJs; }[]; }>; getSuppliedBakcStakingInfo(nTokenAddr: string): Promise<{ stakedAmount: BigNumberJs; pendingRewards: BigNumberJs; tokenId: number; mainTokenId: number; mainPoolId: number; apy: BigNumberJs; stakeLimit: BigNumberJs; }[]>; getPoolApy(type: keyof typeof POOL_ID_MAP): Promise; private getBasicStakeInfo; private formatStakeInfo; private getFormattedStakes; } export {}; //# sourceMappingURL=index.d.ts.map