import { Address } from "@celo/utils/lib/address"; import { Multicall2 } from "@node-fi/multicall"; import BigNumber from "bignumber.js"; import { NodeRoute } from "../Routing"; import { Wallet } from "../wallet"; import { DepositData, DepositTransactionDetails, EarnPosition, Reward, YieldFarmDetails } from "./EarnPosition"; export declare class YieldFarm extends EarnPosition { protected rewards: Reward[]; constructor({ rewards, ...base }: YieldFarmDetails, wallet?: Wallet); canDirectlySwap(): boolean; balanceOfMulticall: (owner: string) => Readonly<{ call: Readonly; parseReturn: (returnData: string) => BigNumber; }>; getExpectedDeposit(tokenIn: string, amountIn: string): Promise<{ expectedOut?: BigNumber; routerAddress?: string; routes?: NodeRoute[]; depositData?: DepositData; oneClickFarmAddress?: Address; error?: string; }>; withdrawToSelectedToken(amountToWithdraw: BigNumber, tokenOut: string): Promise<{ directOutput?: { [address: Address]: BigNumber; }; expectedOut?: BigNumber | undefined; routerAddress?: string | undefined; underlyingRoutes?: NodeRoute[] | undefined; error?: string | undefined; }>; withdrawToUnderlying(amountToWithdraw: BigNumber): Promise<{ directOutput?: { [address: string]: BigNumber; } | undefined; error?: string | undefined; }>; formatTransaction(details: DepositTransactionDetails, to: Address, slippage: number): { to: string; data: string; gas: string; } | undefined; additionalTransactionsForDeposit(_: DepositTransactionDetails): { to: string; data: string; gas: string; }[]; }