import { Interface } from '@ethersproject/abi'; import { Provider } from '@ethersproject/abstract-provider'; import { BigNumber } from '@ethersproject/bignumber'; import { PopulatedTransaction } from '@ethersproject/contracts'; import { BigNumberish } from 'ethers'; import { Router } from './router'; import { BridgeToken, FeeConfig, Query } from '../module'; import { DestRequest } from './types'; /** * Wrapper class for interacting with a SynapseCCTPRouter contract. * Abstracts away the contract interaction: the Router users don't need to know about the contract, * or the data structures used to interact with it. */ export declare class SynapseCCTPRouter extends Router { static routerInterface: Interface; readonly address: string; private readonly routerContract; private cctpContractCache?; private readonly originEvents; constructor(chainId: number, provider: Provider, address: string); getOriginAmountOut(tokenIn: string, bridgeTokens: string[], amountIn: BigNumberish): Promise; getDestinationAmountOut(requests: DestRequest[], tokenOut: string): Promise; getConnectedBridgeTokens(tokenOut: string): Promise; getBridgeFees(token: string, amount: BigNumber, isSwap: boolean): Promise<{ feeAmount: BigNumber; feeConfig: FeeConfig; }>; bridge(to: string, chainId: number, token: string, amount: BigNumberish, originQuery: Query, destQuery: Query): Promise; /** * @inheritdoc Router.getSynapseTxId */ getSynapseTxId(txHash: string): Promise; /** * @inheritdoc Router.getBridgeTxStatus */ getBridgeTxStatus(synapseTxId: string): Promise; chainGasAmount(): Promise; private getCctpContract; }