import BigNumber from "bignumber.js"; import Web3 from "web3"; export type Address = string; export declare abstract class Snapshot { } export type BigNumberString = string; export interface SwapData { addr: string; extra: string; } export declare abstract class Pair { pairKey: string | null; tokenA: Address; tokenB: Address; private swappaPairAddress; private swappaPair; constructor(web3: Web3, swappaPairAddress: Address); init(): Promise; protected abstract _init(): Promise<{ pairKey: string | null; tokenA: Address; tokenB: Address; }>; abstract refresh(): Promise; swapData(inputToken: Address): SwapData; protected abstract swapExtraData(inputToken: Address): string; abstract outputAmount(inputToken: Address, inputAmount: BigNumber): BigNumber; outputAmountAsync: (inputToken: Address, inputAmount: BigNumber) => Promise; abstract snapshot(): Snapshot; abstract restore(snapshot: Snapshot): void; }