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 { SynapseModule, Query } from '../module'; import { FastBridge as FastBridgeContract, IFastBridge } from '../typechain/FastBridge'; import { FastBridgeInterceptor as FastBridgeInterceptorContract } from '../typechain/FastBridgeInterceptor'; export declare type BridgeParams = IFastBridge.BridgeParamsStruct; export declare class FastBridgeRouter implements SynapseModule { static fastBridgeInterface: Interface; static fastBridgeInterceptorInterface: Interface; static fastBridgeRouterInterface: Interface; readonly address: string; readonly chainId: number; readonly provider: Provider; readonly interceptorContract: FastBridgeInterceptorContract | undefined; private readonly routerContract; private fastBridgeContractCache; private readonly originEvents; constructor(chainId: number, provider: Provider, address: string, interceptor?: string); /** * @inheritdoc SynapseModule.bridge */ bridge(to: string, destChainId: number, token: string, amount: BigNumberish, originQuery: Query, destQuery: Query): Promise; /** * @inheritdoc SynapseModule.getSynapseTxId */ getSynapseTxId(txHash: string): Promise; /** * @inheritdoc SynapseModule.getBridgeTxStatus */ getBridgeTxStatus(synapseTxId: string): Promise; chainGasAmount(): Promise; getFastBridgeContract(): Promise; getOriginAmountOut(tokenIn: string, rfqTokens: string[], amountIn: BigNumberish): Promise; /** * @returns The protocol fee rate, multiplied by 1_000_000 (e.g. 1 basis point = 100). */ getProtocolFeeRate(): Promise; }