import { TAddress } from '../../models/TAddress'; import { TAccount } from '../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../clients/ClientEventsStream'; import { ContractBase } from '../../contracts/ContractBase'; import { TxWriter } from '../../txs/TxWriter'; import { ITxLogItem } from '../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../clients/Web3Client'; import { IBlockchainExplorer } from '../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../class/SubjectStream'; import type { TAbiItem } from '../../types/TAbi'; import type { TEth } from '../../models/TEth'; import type { TOverrideReturns } from '../../utils/types'; export declare class IERC1820Registry extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TIERC1820RegistryTypes; $meta: { class: string; }; getInterfaceImplementer(account: TAddress, _interfaceHash: TEth.Hex): Promise; getManager(account: TAddress): Promise; implementsERC165Interface(account: TAddress, interfaceId: TEth.Hex): Promise; implementsERC165InterfaceNoCache(account: TAddress, interfaceId: TEth.Hex): Promise; interfaceHash(interfaceName: string): Promise; setInterfaceImplementer(sender: TSender, account: TAddress, _interfaceHash: TEth.Hex, implementer: TAddress): Promise; setManager(sender: TSender, account: TAddress, newManager: TAddress): Promise; updateERC165Cache(sender: TSender, account: TAddress, interfaceId: TEth.Hex): Promise; $call(): IIERC1820RegistryTxCaller; $signed(): TOverrideReturns>; $data(): IIERC1820RegistryTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TIERC1820RegistryTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onInterfaceImplementerSet(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onManagerChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsInterfaceImplementerSet(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsManagerChanged(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsInterfaceImplementerSet(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { account?: TAddress; interfaceHash?: TEth.Hex; implementer?: TAddress; }; }): Promise>[]>; getPastLogsManagerChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { account?: TAddress; newManager?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TIERC1820RegistryTypes = { Events: { InterfaceImplementerSet: { outputParams: { account: TAddress; interfaceHash: TEth.Hex; implementer: TAddress; }; outputArgs: [account: TAddress, interfaceHash: TEth.Hex, implementer: TAddress]; }; ManagerChanged: { outputParams: { account: TAddress; newManager: TAddress; }; outputArgs: [account: TAddress, newManager: TAddress]; }; }; Methods: { getInterfaceImplementer: { method: "getInterfaceImplementer"; arguments: [account: TAddress, _interfaceHash: TEth.Hex]; }; getManager: { method: "getManager"; arguments: [account: TAddress]; }; implementsERC165Interface: { method: "implementsERC165Interface"; arguments: [account: TAddress, interfaceId: TEth.Hex]; }; implementsERC165InterfaceNoCache: { method: "implementsERC165InterfaceNoCache"; arguments: [account: TAddress, interfaceId: TEth.Hex]; }; interfaceHash: { method: "interfaceHash"; arguments: [interfaceName: string]; }; setInterfaceImplementer: { method: "setInterfaceImplementer"; arguments: [account: TAddress, _interfaceHash: TEth.Hex, implementer: TAddress]; }; setManager: { method: "setManager"; arguments: [account: TAddress, newManager: TAddress]; }; updateERC165Cache: { method: "updateERC165Cache"; arguments: [account: TAddress, interfaceId: TEth.Hex]; }; }; }; interface IIERC1820RegistryTxCaller { setInterfaceImplementer(sender: TSender, account: TAddress, _interfaceHash: TEth.Hex, implementer: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setManager(sender: TSender, account: TAddress, newManager: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; updateERC165Cache(sender: TSender, account: TAddress, interfaceId: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IIERC1820RegistryTxData { setInterfaceImplementer(sender: TSender, account: TAddress, _interfaceHash: TEth.Hex, implementer: TAddress): Promise; setManager(sender: TSender, account: TAddress, newManager: TAddress): Promise; updateERC165Cache(sender: TSender, account: TAddress, interfaceId: TEth.Hex): Promise; } type TEvents = TIERC1820RegistryTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};