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 IHysteaksBatchSendInterface extends Interface { getFunction(nameOrSignature: "calculateFee" | "fee" | "sendERC20Batch" | "sendNativeBatch" | "setFee" | "setFeeExempt" | "setFeeExemptBatch" | "withdrawERC20Fees" | "withdrawNativeFees"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "BatchFeeExemptSet" | "ERC20BatchSent" | "ERC20FeesWithdrawn" | "FeeExemptSet" | "FeeSet" | "NativeBatchSent" | "NativeFeesWithdrawn"): EventFragment; encodeFunctionData(functionFragment: "calculateFee", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "fee", values?: undefined): 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: "withdrawERC20Fees", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "withdrawNativeFees", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "calculateFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fee", 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: "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 interface IHysteaksBatchSend extends BaseContract { connect(runner?: ContractRunner | null): IHysteaksBatchSend; waitForDeployment(): Promise; interface: IHysteaksBatchSendInterface; 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; calculateFee: TypedContractMethod<[amount: BigNumberish], [bigint], "view">; fee: TypedContractMethod<[], [bigint], "view">; 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">; withdrawERC20Fees: TypedContractMethod<[ token: AddressLike, to: AddressLike ], [ void ], "nonpayable">; withdrawNativeFees: TypedContractMethod<[ to: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "calculateFee"): TypedContractMethod<[amount: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "fee"): TypedContractMethod<[], [bigint], "view">; 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: "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; 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; }; }