import { BigNumber, ethers, Signer } from 'ethers'; import { Domain } from '../utils/Constants'; import { PermitData, BatchPermitData, PermitDto, SingleTransferPermitDto, BatchTransferPermitDto, PermitDomainDto, TokenTransferDto, NftTransferDto, NativeTransferDto, TokenData, TransactionsResponse, MigrationResponse } from '../utils/AarcTypes'; import { TypedDataDomain } from '@ethersproject/abstract-signer'; export declare class PermitHelper { ethAdapter: ethers.providers.JsonRpcProvider; chainId: number; constructor(rpcUrl: string, chainId: number); performTokenTransfer(tokenTransferDto: TokenTransferDto): Promise; performNFTTransfer(nftTransferDto: NftTransferDto): Promise; performNativeTransfer(nativeTransferDto: NativeTransferDto): Promise; createDomain(chainId: number, tokenContract: ethers.Contract): Promise; signPermitMessage(permitDto: PermitDto): Promise<{ r: string; s: string; v: number; nonce: number; deadline: number; }>; performPermit(permitDto: PermitDto): Promise<{ chainId: bigint; data: string; target: string; }>; toDeadline(expiration: number): number; getSingleTransferPermitData(singleTransferPermitDto: SingleTransferPermitDto): Promise; getBatchTransferPermitData(batchTransferPermitDto: BatchTransferPermitDto): Promise; permit2Domain(permitDomainDto: PermitDomainDto): TypedDataDomain; getPermit2Nonce(owner: string): Promise; processPermit2Tokens(erc20Tokens: TokenData[], transactions: TransactionsResponse[], senderSigner: Signer, receiverAddress: string): Promise; processPermit2BatchTransactions(permitBatchTransaction: TransactionsResponse, senderSigner: Signer, response: MigrationResponse[], remainingBalance: BigNumber): Promise; }