import { BigNumber } from '@ethersproject/bignumber'; import { Pool, PoolInfo, PoolToken } from '../router'; import { SynapseSDK } from '../sdk'; /** * Gets pool tokens for a pool address. * * @param chainId The chain ID * @param poolAddress The pool address * @returns The pool tokens * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function getPoolTokens(this: SynapseSDK, chainId: number, poolAddress: string): Promise; /** * Gets info for a pool (number of tokens and LP token). * * @param chainId The chain ID * @param poolAddress The pool address * @returns The pool info (number of tokens and LP token) * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function getPoolInfo(this: SynapseSDK, chainId: number, poolAddress: string): Promise; /** * Gets all pools for a chain ID. * * @param chainId The chain ID * @returns An array of all pools (address, tokens, LP token) * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function getAllPools(this: SynapseSDK, chainId: number): Promise; /** * Calculates the amount required to add liquidity for amounts of each token. * * @param chainId The chain ID * @param poolAddress The pool address * @param amounts The amounts of each token to add * @returns The amount of LP tokens needed and router address * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function calculateAddLiquidity(this: SynapseSDK, chainId: number, poolAddress: string, amounts: Record): Promise<{ amount: BigNumber; routerAddress: string; }>; /** * Calculates the amounts received when removing liquidity. * * @param chainId The chain ID * @param poolAddress The pool address * @param amount The amount of LP tokens to remove * @returns The amounts of each token received and router address * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function calculateRemoveLiquidity(this: SynapseSDK, chainId: number, poolAddress: string, amount: BigNumber): Promise<{ amounts: Array<{ value: BigNumber; index: number; }>; routerAddress: string; }>; /** * Calculates the amount of one token received when removing liquidity. * * @param chainId The chain ID * @param poolAddress The pool address * @param amount The amount of LP tokens to remove * @param poolIndex The index of the token to receive * @returns The amount received and router address * @throws Will throw an error if SynapseRouter is not deployed on the given chain. */ export declare function calculateRemoveLiquidityOne(this: SynapseSDK, chainId: number, poolAddress: string, amount: BigNumber, poolIndex: number): Promise<{ amount: { value: BigNumber; index: number; }; routerAddress: string; }>;