import { Transaction } from 'ethers'; import type { Networkish } from '@ethersproject/networks'; import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers'; import type { ConnectionInfo } from '@ethersproject/web'; import RelayClient from './RelayClient'; import type { Either } from './common/utility.types'; import { RelayTransactionEvents } from './handlers/RelayProvider'; export declare const RELAY_TRANSACTION_EVENTS: RelayTransactionEvents[]; export interface RelayingResult { validUntilTime?: string; transaction: Transaction; receipt?: TransactionReceipt; } export interface ProviderParams { url: ConnectionInfo | string; network: Networkish; } export interface RelayStatus { relayRevertedOnRecipient: boolean; transactionRelayed: boolean; reason?: string; } export default class RelayProvider extends JsonRpcProvider { private readonly relayClient; private readonly jsonRpcProvider; constructor(relayClient: RelayClient | undefined, providerOrProviderParams: Either); private _getRelayStatus; private executeRelayTransaction; private _ethSendTransaction; listAccounts(): Promise; send(method: string, params: Array>): Promise; }