/// import { EventEmitter } from 'events'; import { TransactionError } from '../types'; import { TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider'; import { PopulatedTransaction } from 'ethers'; export declare type BaseTransactionManagerEvent = { transactionRequest: PopulatedTransaction; transactionId: string; }; export declare type TransactionQueuedEvent = { isLiveQueue: boolean; } & BaseTransactionManagerEvent; export declare type TransactionStarted = {} & BaseTransactionManagerEvent; export declare type TransactionConfirmedEvent = { transactionResponse: TransactionResponse; } & BaseTransactionManagerEvent; export declare type TransactionFailedEvent = { transactionError: TransactionError; } & BaseTransactionManagerEvent; export declare type TransactionRetriedEvent = { retryCount: number; } & BaseTransactionManagerEvent; export declare type TransactionMaxRetriesReachedEvent = { retryCount: number; } & BaseTransactionManagerEvent; export declare type TransactionExecutedEvent = { transactionReceipt?: TransactionReceipt; } & BaseTransactionManagerEvent; export declare type TransactionTimedOutEvent = { transactionError?: TransactionError; } & BaseTransactionManagerEvent; export declare type TransactionCompletedEvent = { transactionError: TransactionError; } & BaseTransactionManagerEvent; export declare type TransactionGasError = { transactionError: TransactionError; } & BaseTransactionManagerEvent; export declare interface TransactionManagerEventEmitter { on(event: string, listener: () => void): this; on(event: 'transactionQueued', listener: (event: TransactionQueuedEvent) => void): this; on(event: 'transactionConfirmed', listener: (event: TransactionConfirmedEvent) => void): this; on(event: 'transactionFailed', listener: (event: TransactionFailedEvent) => void): this; on(event: 'transactionRetried', listener: (event: TransactionRetriedEvent) => void): this; on(event: 'transactionMaxRetriesReached', listener: (event: TransactionMaxRetriesReachedEvent) => void): this; on(event: 'transactionExecuted', listener: (event: TransactionExecutedEvent) => void): any; on(event: 'transactionCompleted', listener: (event: TransactionCompletedEvent) => void): this; on(event: 'transactionTimedOut', listener: (event: TransactionTimedOutEvent) => void): any; on(event: 'transactionGasError', listener: (event: TransactionGasError) => void): any; on(event: 'transactionStarted', listener: (event: TransactionStarted) => void): any; } export declare class TransactionManagerEventEmitter extends EventEmitter implements TransactionManagerEventEmitter { transactionQueued(event: TransactionQueuedEvent): void; transactionConfirmed(event: TransactionConfirmedEvent): void; transactionFailed(event: TransactionFailedEvent): void; transactionRetried(event: TransactionRetriedEvent): void; transactionMaxRetriesReached(event: TransactionMaxRetriesReachedEvent): void; transactionExecuted(event: TransactionExecutedEvent): void; transactionProcessingCompleted(event: TransactionCompletedEvent): void; transactionTimedOut(event: TransactionTimedOutEvent): void; transactionGasError(event: TransactionGasError): void; transactionStarted(event: TransactionStarted): void; }