import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common"; export interface MessageHubInterface extends Interface { getFunction(nameOrSignature: "creditManager" | "initialize" | "isTrustedForwarder" | "markMessageAsRead" | "messages" | "owner" | "proxiableUUID" | "receiverToMessageIds" | "renounceOwnership" | "rulesManager" | "sendMessage" | "setTrustedForwarder" | "transferOwnership" | "upgradeTo" | "upgradeToAndCall"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AdminChanged" | "BeaconUpgraded" | "Initialized" | "MessageRead" | "MessageSent" | "OwnershipTransferred" | "TrustedForwarderSet" | "Upgraded"): EventFragment; encodeFunctionData(functionFragment: "creditManager", values?: undefined): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike, AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "isTrustedForwarder", values: [AddressLike]): string; encodeFunctionData(functionFragment: "markMessageAsRead", values: [AddressLike, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "messages", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "proxiableUUID", values?: undefined): string; encodeFunctionData(functionFragment: "receiverToMessageIds", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "rulesManager", values?: undefined): string; encodeFunctionData(functionFragment: "sendMessage", values: [AddressLike, BigNumberish, BigNumberish, BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "setTrustedForwarder", values: [AddressLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "upgradeTo", values: [AddressLike]): string; encodeFunctionData(functionFragment: "upgradeToAndCall", values: [AddressLike, BytesLike]): string; decodeFunctionResult(functionFragment: "creditManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isTrustedForwarder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "markMessageAsRead", data: BytesLike): Result; decodeFunctionResult(functionFragment: "messages", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proxiableUUID", data: BytesLike): Result; decodeFunctionResult(functionFragment: "receiverToMessageIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rulesManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendMessage", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setTrustedForwarder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "upgradeToAndCall", data: BytesLike): Result; } export declare namespace AdminChangedEvent { type InputTuple = [previousAdmin: AddressLike, newAdmin: AddressLike]; type OutputTuple = [previousAdmin: string, newAdmin: string]; interface OutputObject { previousAdmin: string; newAdmin: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace BeaconUpgradedEvent { type InputTuple = [beacon: AddressLike]; type OutputTuple = [beacon: string]; interface OutputObject { beacon: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InitializedEvent { type InputTuple = [version: BigNumberish]; type OutputTuple = [version: bigint]; interface OutputObject { version: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MessageReadEvent { type InputTuple = [ tokenAddress: AddressLike, messageId: BigNumberish, sender: AddressLike, receiver: AddressLike ]; type OutputTuple = [ tokenAddress: string, messageId: bigint, sender: string, receiver: string ]; interface OutputObject { tokenAddress: string; messageId: bigint; sender: string; receiver: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MessageSentEvent { type InputTuple = [ tokenAddress: AddressLike, tokenId: BigNumberish, messageId: BigNumberish, imprint: BytesLike, sender: AddressLike, receiver: AddressLike ]; type OutputTuple = [ tokenAddress: string, tokenId: bigint, messageId: bigint, imprint: string, sender: string, receiver: string ]; interface OutputObject { tokenAddress: string; tokenId: bigint; messageId: bigint; imprint: string; sender: string; receiver: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TrustedForwarderSetEvent { type InputTuple = [ previousForwarder: AddressLike, newForwarder: AddressLike ]; type OutputTuple = [previousForwarder: string, newForwarder: string]; interface OutputObject { previousForwarder: string; newForwarder: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpgradedEvent { type InputTuple = [implementation: AddressLike]; type OutputTuple = [implementation: string]; interface OutputObject { implementation: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface MessageHub extends BaseContract { connect(runner?: ContractRunner | null): MessageHub; waitForDeployment(): Promise; interface: MessageHubInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; creditManager: TypedContractMethod<[], [string], "view">; initialize: TypedContractMethod<[ rulesManagerAddress_: AddressLike, creditManagerAddress_: AddressLike, trustedForwarder_: AddressLike ], [ void ], "nonpayable">; isTrustedForwarder: TypedContractMethod<[ forwarder: AddressLike ], [ boolean ], "view">; markMessageAsRead: TypedContractMethod<[ tokenAddress: AddressLike, messageId: BigNumberish, walletProvider: AddressLike ], [ void ], "nonpayable">; messages: TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ [ bigint, bigint, string, string, string, boolean, bigint ] & { tokenId: bigint; messageId: bigint; imprint: string; sender: string; receiver: string; isRead: boolean; rewardBatchIndex: bigint; } ], "view">; owner: TypedContractMethod<[], [string], "view">; proxiableUUID: TypedContractMethod<[], [string], "view">; receiverToMessageIds: TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ bigint ], "view">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; rulesManager: TypedContractMethod<[], [string], "view">; sendMessage: TypedContractMethod<[ tokenAddress: AddressLike, tokenId: BigNumberish, messageId: BigNumberish, imprint: BytesLike, creatorProvider: AddressLike ], [ void ], "nonpayable">; setTrustedForwarder: TypedContractMethod<[ trustedForwarder: AddressLike ], [ void ], "nonpayable">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; upgradeTo: TypedContractMethod<[ newImplementation: AddressLike ], [ void ], "nonpayable">; upgradeToAndCall: TypedContractMethod<[ newImplementation: AddressLike, data: BytesLike ], [ void ], "payable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "creditManager"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[ rulesManagerAddress_: AddressLike, creditManagerAddress_: AddressLike, trustedForwarder_: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "isTrustedForwarder"): TypedContractMethod<[forwarder: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "markMessageAsRead"): TypedContractMethod<[ tokenAddress: AddressLike, messageId: BigNumberish, walletProvider: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "messages"): TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ [ bigint, bigint, string, string, string, boolean, bigint ] & { tokenId: bigint; messageId: bigint; imprint: string; sender: string; receiver: string; isRead: boolean; rewardBatchIndex: bigint; } ], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "proxiableUUID"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "receiverToMessageIds"): TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "rulesManager"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "sendMessage"): TypedContractMethod<[ tokenAddress: AddressLike, tokenId: BigNumberish, messageId: BigNumberish, imprint: BytesLike, creatorProvider: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setTrustedForwarder"): TypedContractMethod<[trustedForwarder: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "upgradeTo"): TypedContractMethod<[ newImplementation: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "upgradeToAndCall"): TypedContractMethod<[ newImplementation: AddressLike, data: BytesLike ], [ void ], "payable">; getEvent(key: "AdminChanged"): TypedContractEvent; getEvent(key: "BeaconUpgraded"): TypedContractEvent; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "MessageRead"): TypedContractEvent; getEvent(key: "MessageSent"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "TrustedForwarderSet"): TypedContractEvent; getEvent(key: "Upgraded"): TypedContractEvent; filters: { "AdminChanged(address,address)": TypedContractEvent; AdminChanged: TypedContractEvent; "BeaconUpgraded(address)": TypedContractEvent; BeaconUpgraded: TypedContractEvent; "Initialized(uint8)": TypedContractEvent; Initialized: TypedContractEvent; "MessageRead(address,uint256,address,address)": TypedContractEvent; MessageRead: TypedContractEvent; "MessageSent(address,uint256,uint256,bytes32,address,address)": TypedContractEvent; MessageSent: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "TrustedForwarderSet(address,address)": TypedContractEvent; TrustedForwarderSet: TypedContractEvent; "Upgraded(address)": TypedContractEvent; Upgraded: TypedContractEvent; }; }