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 HysteaksBatchSendInterface extends Interface { getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "FEE_EXEMPT_ROLE" | "calculateFee" | "fee" | "getRoleAdmin" | "grantRole" | "hasRole" | "isFeeExempt" | "renounceRole" | "revokeRole" | "sendERC20Batch" | "sendNativeBatch" | "setFee" | "setFeeExempt" | "setFeeExemptBatch" | "supportsInterface" | "withdrawERC20Fees" | "withdrawNativeFees"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "BatchFeeExemptSet" | "ERC20BatchSent" | "ERC20FeesWithdrawn" | "FeeExemptSet" | "FeeSet" | "NativeBatchSent" | "NativeFeesWithdrawn" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked"): EventFragment; encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string; encodeFunctionData(functionFragment: "FEE_EXEMPT_ROLE", values?: undefined): string; encodeFunctionData(functionFragment: "calculateFee", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "fee", values?: undefined): string; encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string; encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "isFeeExempt", values: [AddressLike]): string; encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "sendERC20Batch", values: [AddressLike, AddressLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "sendNativeBatch", values: [AddressLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "setFee", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "setFeeExempt", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "setFeeExemptBatch", values: [AddressLike[], boolean[]]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "withdrawERC20Fees", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "withdrawNativeFees", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result; decodeFunctionResult(functionFragment: "FEE_EXEMPT_ROLE", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isFeeExempt", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendERC20Batch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendNativeBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFeeExempt", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFeeExemptBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawERC20Fees", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawNativeFees", data: BytesLike): Result; } export declare namespace BatchFeeExemptSetEvent { type InputTuple = [recipients: AddressLike[], isExempt: boolean[]]; type OutputTuple = [recipients: string[], isExempt: boolean[]]; interface OutputObject { recipients: string[]; isExempt: boolean[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ERC20BatchSentEvent { type InputTuple = [ sender: AddressLike, token: AddressLike, recipients: AddressLike[], amounts: BigNumberish[] ]; type OutputTuple = [ sender: string, token: string, recipients: string[], amounts: bigint[] ]; interface OutputObject { sender: string; token: string; recipients: string[]; amounts: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ERC20FeesWithdrawnEvent { type InputTuple = [ token: AddressLike, to: AddressLike, amount: BigNumberish ]; type OutputTuple = [token: string, to: string, amount: bigint]; interface OutputObject { token: string; to: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FeeExemptSetEvent { type InputTuple = [recipient: AddressLike, isExempt: boolean]; type OutputTuple = [recipient: string, isExempt: boolean]; interface OutputObject { recipient: string; isExempt: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FeeSetEvent { type InputTuple = [fee: BigNumberish]; type OutputTuple = [fee: bigint]; interface OutputObject { fee: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace NativeBatchSentEvent { type InputTuple = [ sender: AddressLike, recipients: AddressLike[], amounts: BigNumberish[] ]; type OutputTuple = [ sender: string, recipients: string[], amounts: bigint[] ]; interface OutputObject { sender: string; recipients: string[]; amounts: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace NativeFeesWithdrawnEvent { type InputTuple = [to: AddressLike, amount: BigNumberish]; type OutputTuple = [to: string, amount: bigint]; interface OutputObject { to: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleAdminChangedEvent { type InputTuple = [ role: BytesLike, previousAdminRole: BytesLike, newAdminRole: BytesLike ]; type OutputTuple = [ role: string, previousAdminRole: string, newAdminRole: string ]; interface OutputObject { role: string; previousAdminRole: string; newAdminRole: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleGrantedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleRevokedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface HysteaksBatchSend extends BaseContract { connect(runner?: ContractRunner | null): HysteaksBatchSend; waitForDeployment(): Promise; interface: HysteaksBatchSendInterface; 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; DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; FEE_EXEMPT_ROLE: TypedContractMethod<[], [string], "view">; calculateFee: TypedContractMethod<[amount: BigNumberish], [bigint], "view">; fee: TypedContractMethod<[], [bigint], "view">; getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; grantRole: TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ void ], "nonpayable">; hasRole: TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ boolean ], "view">; isFeeExempt: TypedContractMethod<[arg0: AddressLike], [boolean], "view">; renounceRole: TypedContractMethod<[ role: BytesLike, callerConfirmation: AddressLike ], [ void ], "nonpayable">; revokeRole: TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ void ], "nonpayable">; sendERC20Batch: TypedContractMethod<[ token: AddressLike, recipients: AddressLike[], amounts: BigNumberish[] ], [ void ], "nonpayable">; sendNativeBatch: TypedContractMethod<[ recipients: AddressLike[], amounts: BigNumberish[] ], [ void ], "payable">; setFee: TypedContractMethod<[_fee: BigNumberish], [void], "nonpayable">; setFeeExempt: TypedContractMethod<[ recipient: AddressLike, _isExempt: boolean ], [ void ], "nonpayable">; setFeeExemptBatch: TypedContractMethod<[ recipients: AddressLike[], _isExempt: boolean[] ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; withdrawERC20Fees: TypedContractMethod<[ token: AddressLike, to: AddressLike ], [ void ], "nonpayable">; withdrawNativeFees: TypedContractMethod<[ to: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "FEE_EXEMPT_ROLE"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "calculateFee"): TypedContractMethod<[amount: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "fee"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">; getFunction(nameOrSignature: "grantRole"): TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "hasRole"): TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "isFeeExempt"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[ role: BytesLike, callerConfirmation: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "revokeRole"): TypedContractMethod<[ role: BytesLike, account: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "sendERC20Batch"): TypedContractMethod<[ token: AddressLike, recipients: AddressLike[], amounts: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "sendNativeBatch"): TypedContractMethod<[ recipients: AddressLike[], amounts: BigNumberish[] ], [ void ], "payable">; getFunction(nameOrSignature: "setFee"): TypedContractMethod<[_fee: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "setFeeExempt"): TypedContractMethod<[ recipient: AddressLike, _isExempt: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setFeeExemptBatch"): TypedContractMethod<[ recipients: AddressLike[], _isExempt: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "withdrawERC20Fees"): TypedContractMethod<[ token: AddressLike, to: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "withdrawNativeFees"): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; getEvent(key: "BatchFeeExemptSet"): TypedContractEvent; getEvent(key: "ERC20BatchSent"): TypedContractEvent; getEvent(key: "ERC20FeesWithdrawn"): TypedContractEvent; getEvent(key: "FeeExemptSet"): TypedContractEvent; getEvent(key: "FeeSet"): TypedContractEvent; getEvent(key: "NativeBatchSent"): TypedContractEvent; getEvent(key: "NativeFeesWithdrawn"): TypedContractEvent; getEvent(key: "RoleAdminChanged"): TypedContractEvent; getEvent(key: "RoleGranted"): TypedContractEvent; getEvent(key: "RoleRevoked"): TypedContractEvent; filters: { "BatchFeeExemptSet(address[],bool[])": TypedContractEvent; BatchFeeExemptSet: TypedContractEvent; "ERC20BatchSent(address,address,address[],uint256[])": TypedContractEvent; ERC20BatchSent: TypedContractEvent; "ERC20FeesWithdrawn(address,address,uint256)": TypedContractEvent; ERC20FeesWithdrawn: TypedContractEvent; "FeeExemptSet(address,bool)": TypedContractEvent; FeeExemptSet: TypedContractEvent; "FeeSet(uint256)": TypedContractEvent; FeeSet: TypedContractEvent; "NativeBatchSent(address,address[],uint256[])": TypedContractEvent; NativeBatchSent: TypedContractEvent; "NativeFeesWithdrawn(address,uint256)": TypedContractEvent; NativeFeesWithdrawn: TypedContractEvent; "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent; RoleAdminChanged: TypedContractEvent; "RoleGranted(bytes32,address,address)": TypedContractEvent; RoleGranted: TypedContractEvent; "RoleRevoked(bytes32,address,address)": TypedContractEvent; RoleRevoked: TypedContractEvent; }; }