import { Transaction } from 'ethers'; import { HttpClient } from './api/common'; import { RelayEstimation, RelayTxOptions } from './common'; import type { UserDefinedEnvelopingRequest } from './common/relayRequest.types'; import EnvelopingEventEmitter from './events/EnvelopingEventEmitter'; declare class RelayClient extends EnvelopingEventEmitter { private _relayServerUrl?; private readonly _envelopingConfig; private readonly _httpClient; constructor(httpClient?: HttpClient, _relayServerUrl?: string | undefined); getRelayServerUrl(): string | undefined; get httpClient(): HttpClient; private _getEnvelopingRequestDetails; private _isCallInvalid; private _prepareHttpRequest; private _prepareTokenGas; private _calculateGasPrice; isSmartWalletOwner(smartWalletAddress: string, owner: string): Promise; relayTransaction(envelopingRequest: UserDefinedEnvelopingRequest, options?: RelayTxOptions): Promise; estimateRelayTransaction(envelopingRequest: UserDefinedEnvelopingRequest, options?: RelayTxOptions): Promise; private _getHubEnvelopingTx; private _getRelayServer; private _getRelayInfo; private _attemptRelayTransaction; /** * In case Relay Server does not broadcast the signed transaction to the network, * client also broadcasts the same transaction. If the transaction fails with nonce * error, it indicates Relay may have signed multiple transactions with same nonce, * causing a DoS attack. * * @param {*} signedTx - actual Ethereum transaction, signed by a relay */ private _broadcastTx; private _verifyEnvelopingRequest; private _verifyWorkerBalance; private _verifyWithVerifiers; private _verifyWithRelayHub; } export default RelayClient; export { RelayTxOptions };