import { AbiItem, Callback, CeloTxObject, Contract, EventLog } from "@celo/connect"; import { EventEmitter } from "events"; import Web3 from "web3"; import { EventOptions } from "./types"; export interface IBPool extends Contract { clone(): IBPool; methods: { getNumTokens(): CeloTxObject; getCurrentTokens(): CeloTxObject; swapExactAmountIn(tokenIn: string, tokenAmountIn: number | string, tokenOut: string, minAmountOut: number | string, maxPrice: number | string): CeloTxObject<{ tokenAmountOut: string; spotPriceAfter: string; 0: string; 1: string; }>; swapExactAmountOut(tokenIn: string, maxAmountIn: number | string, tokenOut: string, tokenAmountOut: number | string, maxPrice: number | string): CeloTxObject<{ tokenAmountIn: string; spotPriceAfter: string; 0: string; 1: string; }>; calcInGivenOut(tokenBalanceIn: number | string, tokenWeightIn: number | string, tokenBalanceOut: number | string, tokenWeightOut: number | string, tokenAmountOut: number | string, swapFee: number | string): CeloTxObject; calcOutGivenIn(tokenBalanceIn: number | string, tokenWeightIn: number | string, tokenBalanceOut: number | string, tokenWeightOut: number | string, tokenAmountIn: number | string, swapFee: number | string): CeloTxObject; getNormalizedWeight(token: string): CeloTxObject; getDenormalizedWeight(token: string): CeloTxObject; getTotalDenormalizedWeight(): CeloTxObject; isFinalized(): CeloTxObject; getBalance(token: string): CeloTxObject; getSwapFee(): CeloTxObject; }; events: { allEvents: (options?: EventOptions, cb?: Callback) => EventEmitter; }; } export declare const ABI: AbiItem[]; export declare function newIBPool(web3: Web3, address: string): IBPool;