import { BigNumber, ethers, PayableOverrides } from 'ethers'; import { ParentToChildTransactionRequest } from '@arbitrum/sdk'; import { BridgeNetworkConfig } from '../networks'; export declare const depositERC20: (amount: BigNumber, destinationNetworkChainId: number, originTokenAddress: string, signer: ethers.Signer, childProvider: ethers.providers.Provider, overrides?: PayableOverrides) => Promise; export declare const depositNative: (amount: BigNumber, destinationNetwork: BridgeNetworkConfig, signer: ethers.Signer, overrides?: PayableOverrides) => Promise; export declare const depositETH: (amount: BigNumber, destinationNetworkChainId: number, signer: ethers.Signer, overrides?: PayableOverrides) => Promise; export interface DepositGasEstimation { estimatedParentChainGas: BigNumber; estimatedChildChainGas: BigNumber; estimatedChildChainSubmissionCost: BigNumber; request: ParentToChildTransactionRequest; } export declare const getDepositGasEstimation: (amount: BigNumber, parentProvider: ethers.providers.Provider, childProvider: ethers.providers.Provider, from: string, parentChainErc20Address: string) => Promise; export declare const estimateDepositERC20ToEth: (amount: ethers.BigNumber, provider: ethers.providers.Provider, contractAddress: string, from: string) => Promise<{ estimatedGas: BigNumber; gasPrice: BigNumber; estimatedFee: BigNumber; }>; export declare const estimateDepositEth: (amount: ethers.BigNumber, provider: ethers.providers.Provider, contractAddress: string, from: string) => Promise<{ estimatedGas: BigNumber; gasPrice: BigNumber; estimatedFee: BigNumber; }>; export declare const estimateApproval: (amount: ethers.BigNumber, provider: ethers.providers.Provider, tokenAddress: string, spenderAddress: string, from: string) => Promise<{ estimatedGas: BigNumber; gasPrice: BigNumber; estimatedFee: BigNumber; }>;