import { ethers } from "ethers"; import { Network, PendingDeposit, WithdrawArgs } from "../types.js"; import { ReviewFee } from "../fee.js"; import OmniService from "../bridge.js"; declare class EvmOmniService { readonly omni: OmniService; getProvider: (chain: number) => ethers.AbstractProvider; readonly enableApproveMax: boolean; readonly treasuryDefaultContract: string; readonly treasuryContracts: Record; constructor(omni: OmniService, options: { enableApproveMax?: boolean; treasuryDefaultContract?: string; treasuryContracts?: Record; rpcs?: Record | ((chain: number) => ethers.AbstractProvider); }); getContract(chain: number): string; getGasPrice(chain: number): Promise; getWithdrawFee(chain: number): Promise; getDepositFee(chain: number, address: string, amount: bigint, sender: string): Promise; approveTokenEstimate(args: { chain: number; sender: string; token: string; allowed: string; need: bigint; }): Promise; depositEstimateGas(chain: number, address: string, amount: bigint, sender: string): Promise; approveToken(args: { chain: number; token: string; allowed: string; need: bigint; amount: bigint; sender: string; sendTransaction: (tx: ethers.TransactionRequest) => Promise; }): Promise; getTokenBalance(token: string, chain: Network, address?: string): Promise; isWithdrawUsed(chain: number, nonce: string): Promise; withdraw(args: WithdrawArgs & { sendTransaction: (tx: ethers.TransactionRequest) => Promise; }): Promise; deposit(args: { chain: number; token: string; amount: bigint; sender: string; intentAccount: string; sendTransaction: (tx: ethers.TransactionRequest) => Promise; }): Promise; parseDeposit(chain: number, hash: string): Promise; } export default EvmOmniService;