/// import { PastEventOptions } from 'web3-eth-contract'; import { EventEmitter } from 'events'; import { PrefixedHexString } from 'ethereumjs-util'; import { Block } from '@ethersproject/providers'; import { Address, AmountRequired, ContractInteractor, EventData, LoggerInterface, RegistrarRelayInfo } from '@opengsn/common'; import { TransactionManager } from './TransactionManager'; import { ServerConfigParams } from './ServerConfigParams'; import { TxStoreManager } from './TxStoreManager'; import { Web3MethodsBuilder } from './Web3MethodsBuilder'; export declare class RegistrationManager { balanceRequired: AmountRequired; stakeRequired: AmountRequired; _isSetOwnerCalled: boolean; _isOwnerSetOnStakeManager: boolean; _isHubAuthorized: boolean; _isStakeLocked: boolean; isInitialized: boolean; hubAddress: Address; managerAddress: Address; workerAddress: Address; eventEmitter: EventEmitter; contractInteractor: ContractInteractor; web3MethodsBuilder: Web3MethodsBuilder; ownerAddress?: Address; transactionManager: TransactionManager; config: ServerConfigParams; txStoreManager: TxStoreManager; logger: LoggerInterface; currentRelayInfo?: RegistrarRelayInfo; private delayedEvents; get isHubAuthorized(): boolean; set isHubAuthorized(newValue: boolean); get isStakeLocked(): boolean; set isStakeLocked(newValue: boolean); constructor(contractInteractor: ContractInteractor, web3methodsBuilder: Web3MethodsBuilder, transactionManager: TransactionManager, txStoreManager: TxStoreManager, eventEmitter: EventEmitter, logger: LoggerInterface, config: ServerConfigParams, managerAddress: Address, workerAddress: Address); init(lastScannedBlock: number, latestBlock: Block): Promise; handlePastEvents(hubEventsSinceLastScan: EventData[], lastScannedBlock: number, currentBlock: Block, currentBlockTimestamp: number, forceRegistration: boolean): Promise; _extractDuePendingEvents(currentBlockTime: number | string): EventData[]; refreshRegistrarRelayInfo(): Promise; _isRegistrationCorrect(): boolean; _parseEvent(event: { events: any[]; name: string; address: string; } | null): any; _handleHubAuthorizedEvent(dlog: EventData): Promise; _handleHubUnauthorizedEvent(dlog: EventData, currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; _handleStakeWithdrawnEvent(dlog: EventData, currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; /** * @param withdrawManager - whether to send the relay manager's balance to the owner. * Note that more than one relay process could be using the same manager account. * @param currentBlock */ withdrawAllFunds(withdrawManager: boolean, currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; refreshBalance(): Promise; refreshStake(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; addRelayWorker(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; attemptRegistration(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; _sendManagerEthBalanceToOwner(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; _sendWorkersEthBalancesToOwner(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; _sendManagerHubBalanceToOwner(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number, amount?: BN): Promise; _isWorkerValid(): Promise; isRegistered(): Promise; printNotRegisteredMessage(): void; printEvents(decodedEvents: EventData[], options: PastEventOptions): void; setOwnerInStakeManager(currentBlockNumber: number, currentBlockHash: string, currentBlockTimestamp: number): Promise; }