import memoize from "memoizee"; import { IDict, IReward, IProfit } from '../interfaces'; export declare class PoolTemplate { id: string; name: string; fullName: string; symbol: string; referenceAsset: string; address: string; lpToken: string; gauge: string; zap: string | null; sRewardContract: string | null; rewardContract: string | null; implementation: string | null; isPlain: boolean; isLending: boolean; isMeta: boolean; isCrypto: boolean; isFake: boolean; isFactory: boolean; isMetaFactory: boolean; isStableNg: boolean; isLlamma: boolean; basePool: string; metaCoinIdx: number; underlyingCoins: string[]; wrappedCoins: string[]; underlyingCoinAddresses: string[]; wrappedCoinAddresses: string[]; underlyingDecimals: number[]; wrappedDecimals: number[]; useLending: boolean[]; inApi: boolean; isGaugeKilled: boolean; gaugeStatus: Record | null; estimateGas: { depositApprove: (amounts: (number | string)[]) => Promise; deposit: (amounts: (number | string)[]) => Promise; depositWrappedApprove: (amounts: (number | string)[]) => Promise; depositWrapped: (amounts: (number | string)[]) => Promise; stakeApprove: (lpTokenAmount: number | string) => Promise; stake: (lpTokenAmount: number | string) => Promise; unstake: (lpTokenAmount: number | string) => Promise; claimCrv: () => Promise; claimRewards: () => Promise; depositAndStakeApprove: (amounts: (number | string)[]) => Promise; depositAndStake: (amounts: (number | string)[]) => Promise; depositAndStakeWrappedApprove: (amounts: (number | string)[]) => Promise; depositAndStakeWrapped: (amounts: (number | string)[]) => Promise; withdrawApprove: (lpTokenAmount: number | string) => Promise; withdraw: (lpTokenAmount: number | string) => Promise; withdrawWrapped: (lpTokenAmount: number | string) => Promise; withdrawImbalanceApprove: (amounts: (number | string)[]) => Promise; withdrawImbalance: (amounts: (number | string)[]) => Promise; withdrawImbalanceWrapped: (amounts: (number | string)[]) => Promise; withdrawOneCoinApprove: (lpTokenAmount: number | string) => Promise; withdrawOneCoin: (lpTokenAmount: number | string, coin: string | number) => Promise; withdrawOneCoinWrapped: (lpTokenAmount: number | string, coin: string | number) => Promise; swapApprove: (inputCoin: string | number, amount: number | string) => Promise; swap: (inputCoin: string | number, outputCoin: string | number, amount: number | string, slippage: number) => Promise; swapWrappedApprove: (inputCoin: string | number, amount: number | string) => Promise; swapWrapped: (inputCoin: string | number, outputCoin: string | number, amount: number | string, slippage: number) => Promise; }; stats: { parameters: () => Promise<{ lpTokenSupply: string; virtualPrice: string; fee: string; adminFee: string; A: string; future_A?: string; initial_A?: string; future_A_time?: number; initial_A_time?: number; gamma?: string; price_oracle?: string[]; price_scale?: string[]; }>; underlyingBalances: () => Promise; wrappedBalances: () => Promise; totalLiquidity: (useApi?: boolean) => Promise; volume: () => Promise; baseApy: () => Promise<{ day: string; week: string; }>; tokenApy: (useApi?: boolean) => Promise<[baseApy: number, boostedApy: number]>; rewardsApy: (useApi?: boolean) => Promise; }; wallet: { balances: (...addresses: string[] | string[][]) => Promise> | IDict>; lpTokenBalances: (...addresses: string[] | string[][]) => Promise> | IDict>; underlyingCoinBalances: (...addresses: string[] | string[][]) => Promise> | IDict>; wrappedCoinBalances: (...addresses: string[] | string[][]) => Promise> | IDict>; allCoinBalances: (...addresses: string[] | string[][]) => Promise> | IDict>; }; constructor(id: string); hasVyperVulnerability(): boolean; rewardsOnly(): boolean; private statsParameters; private statsWrappedBalances; private statsUnderlyingBalances; private statsTotalLiquidity; private statsVolume; private statsBaseApy; private _calcTokenApy; private statsTokenApy; private statsRewardsApy; private _pureCalcLpTokenAmount; private _calcLpTokenAmount; private calcLpTokenAmount; private calcLpTokenAmountWrapped; metaUnderlyingSeedAmounts(amount1: number | string): string[]; cryptoSeedAmounts(amount1: number | string): Promise; depositBalancedAmounts(): Promise; depositExpected(amounts: (number | string)[]): Promise; private _balancedAmountsWithSameValue; depositBonus(amounts: (number | string)[]): Promise; depositIsApproved(amounts: (number | string)[]): Promise; private depositApproveEstimateGas; depositApprove(amounts: (number | string)[]): Promise; private depositEstimateGas; deposit(amounts: (number | string)[], slippage?: number): Promise; depositWrappedBalancedAmounts(): Promise; depositWrappedExpected(amounts: (number | string)[]): Promise; depositWrappedBonus(amounts: (number | string)[]): Promise; depositWrappedIsApproved(amounts: (number | string)[]): Promise; private depositWrappedApproveEstimateGas; depositWrappedApprove(amounts: (number | string)[]): Promise; private depositWrappedEstimateGas; depositWrapped(amounts: (number | string)[], slippage?: number): Promise; stakeIsApproved(lpTokenAmount: number | string): Promise; private stakeApproveEstimateGas; stakeApprove(lpTokenAmount: number | string): Promise; private stakeEstimateGas; stake(lpTokenAmount: number | string): Promise; private unstakeEstimateGas; unstake(lpTokenAmount: number | string): Promise; crvProfit: (address?: string) => Promise; claimableCrv(address?: string): Promise; claimCrvEstimateGas(): Promise; claimCrv(): Promise; userBoost: (address?: string) => Promise; private _userFutureBoostAndWorkingSupply; userFutureBoost: (address?: string) => Promise; userCrvApy: (address?: string) => Promise; userFutureCrvApy: (address?: string) => Promise; maxBoostedStake: (...addresses: string[]) => Promise | string>; rewardTokens: ((useApi?: any) => Promise<{ token: string; symbol: string; decimals: number; }[]>) & memoize.Memoized<(useApi?: any) => Promise<{ token: string; symbol: string; decimals: number; }[]>>; rewardsProfit: (address?: string) => Promise; claimableRewards(address?: string): Promise<{ token: string; symbol: string; amount: string; }[]>; claimRewardsEstimateGas(): Promise; claimRewards(): Promise; depositAndStakeExpected(amounts: (number | string)[]): Promise; depositAndStakeBonus(amounts: (number | string)[]): Promise; depositAndStakeIsApproved(amounts: (number | string)[]): Promise; private depositAndStakeApproveEstimateGas; depositAndStakeApprove(amounts: (number | string)[]): Promise; private depositAndStakeEstimateGas; depositAndStake(amounts: (number | string)[], slippage?: number): Promise; depositAndStakeWrappedExpected(amounts: (number | string)[]): Promise; depositAndStakeWrappedBonus(amounts: (number | string)[]): Promise; depositAndStakeWrappedIsApproved(amounts: (number | string)[]): Promise; private depositAndStakeWrappedApproveEstimateGas; depositAndStakeWrappedApprove(amounts: (number | string)[]): Promise; private depositAndStakeWrappedEstimateGas; depositAndStakeWrapped(amounts: (number | string)[], slippage?: number): Promise; private _depositAndStake; withdrawExpected(lpTokenAmount: number | string): Promise; withdrawIsApproved(lpTokenAmount: number | string): Promise; private withdrawApproveEstimateGas; withdrawApprove(lpTokenAmount: number | string): Promise; private withdrawEstimateGas; withdraw(lpTokenAmount: number | string, slippage?: number): Promise; withdrawWrappedExpected(lpTokenAmount: number | string): Promise; private withdrawWrappedEstimateGas; withdrawWrapped(lpTokenAmount: number | string, slippage?: number): Promise; withdrawImbalanceExpected(amounts: (number | string)[]): Promise; withdrawImbalanceBonus(amounts: (number | string)[]): Promise; withdrawImbalanceIsApproved(amounts: (number | string)[]): Promise; private withdrawImbalanceApproveEstimateGas; withdrawImbalanceApprove(amounts: (number | string)[]): Promise; private withdrawImbalanceEstimateGas; withdrawImbalance(amounts: (number | string)[], slippage?: number): Promise; withdrawImbalanceWrappedExpected(amounts: (number | string)[]): Promise; withdrawImbalanceWrappedBonus(amounts: (number | string)[]): Promise; private withdrawImbalanceWrappedEstimateGas; withdrawImbalanceWrapped(amounts: (number | string)[], slippage?: number): Promise; private _withdrawOneCoinExpected; withdrawOneCoinExpected(lpTokenAmount: number | string, coin: string | number): Promise; withdrawOneCoinBonus(lpTokenAmount: number | string, coin: string | number): Promise; withdrawOneCoinIsApproved(lpTokenAmount: number | string): Promise; private withdrawOneCoinApproveEstimateGas; withdrawOneCoinApprove(lpTokenAmount: number | string): Promise; private withdrawOneCoinEstimateGas; withdrawOneCoin(lpTokenAmount: number | string, coin: string | number, slippage?: number): Promise; private _withdrawOneCoinWrappedExpected; withdrawOneCoinWrappedExpected(lpTokenAmount: number | string, coin: string | number): Promise; withdrawOneCoinWrappedBonus(lpTokenAmount: number | string, coin: string | number): Promise; private withdrawOneCoinWrappedEstimateGas; withdrawOneCoinWrapped(lpTokenAmount: number | string, coin: string | number, slippage?: number): Promise; private walletBalances; private walletLpTokenBalances; private walletUnderlyingCoinBalances; private walletWrappedCoinBalances; private walletAllCoinBalances; private _userLpTotalBalance; userBalances(address?: string): Promise; userWrappedBalances(address?: string): Promise; userLiquidityUSD(address?: string): Promise; baseProfit(address?: string): Promise<{ day: string; week: string; month: string; year: string; }>; userShare(address?: string): Promise<{ lpUser: string; lpTotal: string; lpShare: string; gaugeUser?: string; gaugeTotal?: string; gaugeShare?: string; }>; private _swapExpected; swapExpected(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; private _swapRequired; swapRequired(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; swapWrappedRequired(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; swapPriceImpact(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; private _swapContractAddress; swapIsApproved(inputCoin: string | number, amount: number | string): Promise; private swapApproveEstimateGas; swapApprove(inputCoin: string | number, amount: number | string): Promise; private swapEstimateGas; swap(inputCoin: string | number, outputCoin: string | number, amount: number | string, slippage?: number): Promise; private _swapWrappedExpected; swapWrappedExpected(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; swapWrappedPriceImpact(inputCoin: string | number, outputCoin: string | number, amount: number | string): Promise; swapWrappedIsApproved(inputCoin: string | number, amount: number | string): Promise; private swapWrappedApproveEstimateGas; swapWrappedApprove(inputCoin: string | number, amount: number | string): Promise; private swapWrappedEstimateGas; swapWrapped(inputCoin: string | number, outputCoin: string | number, amount: number | string, slippage?: number): Promise; gaugeOptimalDeposits: (...accounts: string[]) => Promise>; private _getCoinIdx; private _getRates; private _balances; private _stored_rates; private _underlyingPrices; private _wrappedPrices; }