import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type UserRewardInputStruct = { user: string; epoch: BigNumberish; userLoyaltyLevel: BigNumberish; amountDeposited: BigNumberish; }; export type UserRewardInputStructOutput = [ string, BigNumber, BigNumber, BigNumber ] & { user: string; epoch: BigNumber; userLoyaltyLevel: BigNumber; amountDeposited: BigNumber; }; export type LoyaltyEpochRewardRateInputStruct = { loyaltyLevel: BigNumberish; epochRewardRate: BigNumberish; }; export type LoyaltyEpochRewardRateInputStructOutput = [BigNumber, BigNumber] & { loyaltyLevel: BigNumber; epochRewardRate: BigNumber; }; export interface IUserLoyaltyRewardsAbiInterface extends utils.Interface { functions: { "claimReward(uint256)": FunctionFragment; "doEmitRewards()": FunctionFragment; "emitUserLoyaltyReward(address,uint256,uint256,uint256)": FunctionFragment; "emitUserLoyaltyRewardBatch((address,uint256,uint256,uint256)[],uint256)": FunctionFragment; "loyaltyEpochRewardRates(uint256)": FunctionFragment; "recoverERC20(address,uint256,address)": FunctionFragment; "setDoEmitRewards(bool)": FunctionFragment; "setRewardRatesPerLoyaltyLevel((uint256,uint256)[])": FunctionFragment; "totalUnclaimedRewards()": FunctionFragment; "userRewards(address)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "claimReward" | "doEmitRewards" | "emitUserLoyaltyReward" | "emitUserLoyaltyRewardBatch" | "loyaltyEpochRewardRates" | "recoverERC20" | "setDoEmitRewards" | "setRewardRatesPerLoyaltyLevel" | "totalUnclaimedRewards" | "userRewards"): FunctionFragment; encodeFunctionData(functionFragment: "claimReward", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "doEmitRewards", values?: undefined): string; encodeFunctionData(functionFragment: "emitUserLoyaltyReward", values: [string, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "emitUserLoyaltyRewardBatch", values: [UserRewardInputStruct[], BigNumberish]): string; encodeFunctionData(functionFragment: "loyaltyEpochRewardRates", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "recoverERC20", values: [string, BigNumberish, string]): string; encodeFunctionData(functionFragment: "setDoEmitRewards", values: [boolean]): string; encodeFunctionData(functionFragment: "setRewardRatesPerLoyaltyLevel", values: [LoyaltyEpochRewardRateInputStruct[]]): string; encodeFunctionData(functionFragment: "totalUnclaimedRewards", values?: undefined): string; encodeFunctionData(functionFragment: "userRewards", values: [string]): string; decodeFunctionResult(functionFragment: "claimReward", data: BytesLike): Result; decodeFunctionResult(functionFragment: "doEmitRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "emitUserLoyaltyReward", data: BytesLike): Result; decodeFunctionResult(functionFragment: "emitUserLoyaltyRewardBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "loyaltyEpochRewardRates", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recoverERC20", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDoEmitRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRewardRatesPerLoyaltyLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalUnclaimedRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "userRewards", data: BytesLike): Result; events: { "LoyaltyRewardsDisabled()": EventFragment; "LoyaltyRewardsEnabled()": EventFragment; "UpdatedLoyaltyLevelRewardRate(uint256,uint256)": EventFragment; "UserLoyaltyRewardsEmitted(address,uint256,uint256)": EventFragment; "UserRewardClaimed(address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "LoyaltyRewardsDisabled"): EventFragment; getEvent(nameOrSignatureOrTopic: "LoyaltyRewardsEnabled"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedLoyaltyLevelRewardRate"): EventFragment; getEvent(nameOrSignatureOrTopic: "UserLoyaltyRewardsEmitted"): EventFragment; getEvent(nameOrSignatureOrTopic: "UserRewardClaimed"): EventFragment; } export interface LoyaltyRewardsDisabledEventObject { } export type LoyaltyRewardsDisabledEvent = TypedEvent<[ ], LoyaltyRewardsDisabledEventObject>; export type LoyaltyRewardsDisabledEventFilter = TypedEventFilter; export interface LoyaltyRewardsEnabledEventObject { } export type LoyaltyRewardsEnabledEvent = TypedEvent<[ ], LoyaltyRewardsEnabledEventObject>; export type LoyaltyRewardsEnabledEventFilter = TypedEventFilter; export interface UpdatedLoyaltyLevelRewardRateEventObject { loyaltyLevel: BigNumber; rewardRate: BigNumber; } export type UpdatedLoyaltyLevelRewardRateEvent = TypedEvent<[ BigNumber, BigNumber ], UpdatedLoyaltyLevelRewardRateEventObject>; export type UpdatedLoyaltyLevelRewardRateEventFilter = TypedEventFilter; export interface UserLoyaltyRewardsEmittedEventObject { user: string; epoch: BigNumber; rewardAmount: BigNumber; } export type UserLoyaltyRewardsEmittedEvent = TypedEvent<[ string, BigNumber, BigNumber ], UserLoyaltyRewardsEmittedEventObject>; export type UserLoyaltyRewardsEmittedEventFilter = TypedEventFilter; export interface UserRewardClaimedEventObject { user: string; rewardAmount: BigNumber; } export type UserRewardClaimedEvent = TypedEvent<[ string, BigNumber ], UserRewardClaimedEventObject>; export type UserRewardClaimedEventFilter = TypedEventFilter; export interface IUserLoyaltyRewardsAbi extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IUserLoyaltyRewardsAbiInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { claimReward(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; doEmitRewards(overrides?: CallOverrides): Promise<[boolean]>; emitUserLoyaltyReward(user: string, epoch: BigNumberish, userLoyaltyLevel: BigNumberish, amountDeposited: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; emitUserLoyaltyRewardBatch(userRewardInputs: UserRewardInputStruct[], ksuTokenPrice: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; loyaltyEpochRewardRates(loyaltyLevel: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; recoverERC20(tokenAddress: string, tokenAmount: BigNumberish, recipient: string, overrides?: Overrides & { from?: string; }): Promise; setDoEmitRewards(doEmitRewards_: boolean, overrides?: Overrides & { from?: string; }): Promise; setRewardRatesPerLoyaltyLevel(loyaltyEpochRewardRateInput: LoyaltyEpochRewardRateInputStruct[], overrides?: Overrides & { from?: string; }): Promise; totalUnclaimedRewards(overrides?: CallOverrides): Promise<[BigNumber]>; userRewards(user: string, overrides?: CallOverrides): Promise<[BigNumber]>; }; claimReward(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; doEmitRewards(overrides?: CallOverrides): Promise; emitUserLoyaltyReward(user: string, epoch: BigNumberish, userLoyaltyLevel: BigNumberish, amountDeposited: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; emitUserLoyaltyRewardBatch(userRewardInputs: UserRewardInputStruct[], ksuTokenPrice: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; loyaltyEpochRewardRates(loyaltyLevel: BigNumberish, overrides?: CallOverrides): Promise; recoverERC20(tokenAddress: string, tokenAmount: BigNumberish, recipient: string, overrides?: Overrides & { from?: string; }): Promise; setDoEmitRewards(doEmitRewards_: boolean, overrides?: Overrides & { from?: string; }): Promise; setRewardRatesPerLoyaltyLevel(loyaltyEpochRewardRateInput: LoyaltyEpochRewardRateInputStruct[], overrides?: Overrides & { from?: string; }): Promise; totalUnclaimedRewards(overrides?: CallOverrides): Promise; userRewards(user: string, overrides?: CallOverrides): Promise; callStatic: { claimReward(amount: BigNumberish, overrides?: CallOverrides): Promise; doEmitRewards(overrides?: CallOverrides): Promise; emitUserLoyaltyReward(user: string, epoch: BigNumberish, userLoyaltyLevel: BigNumberish, amountDeposited: BigNumberish, overrides?: CallOverrides): Promise; emitUserLoyaltyRewardBatch(userRewardInputs: UserRewardInputStruct[], ksuTokenPrice: BigNumberish, overrides?: CallOverrides): Promise; loyaltyEpochRewardRates(loyaltyLevel: BigNumberish, overrides?: CallOverrides): Promise; recoverERC20(tokenAddress: string, tokenAmount: BigNumberish, recipient: string, overrides?: CallOverrides): Promise; setDoEmitRewards(doEmitRewards_: boolean, overrides?: CallOverrides): Promise; setRewardRatesPerLoyaltyLevel(loyaltyEpochRewardRateInput: LoyaltyEpochRewardRateInputStruct[], overrides?: CallOverrides): Promise; totalUnclaimedRewards(overrides?: CallOverrides): Promise; userRewards(user: string, overrides?: CallOverrides): Promise; }; filters: { "LoyaltyRewardsDisabled()"(): LoyaltyRewardsDisabledEventFilter; LoyaltyRewardsDisabled(): LoyaltyRewardsDisabledEventFilter; "LoyaltyRewardsEnabled()"(): LoyaltyRewardsEnabledEventFilter; LoyaltyRewardsEnabled(): LoyaltyRewardsEnabledEventFilter; "UpdatedLoyaltyLevelRewardRate(uint256,uint256)"(loyaltyLevel?: BigNumberish | null, rewardRate?: null): UpdatedLoyaltyLevelRewardRateEventFilter; UpdatedLoyaltyLevelRewardRate(loyaltyLevel?: BigNumberish | null, rewardRate?: null): UpdatedLoyaltyLevelRewardRateEventFilter; "UserLoyaltyRewardsEmitted(address,uint256,uint256)"(user?: string | null, epoch?: BigNumberish | null, rewardAmount?: null): UserLoyaltyRewardsEmittedEventFilter; UserLoyaltyRewardsEmitted(user?: string | null, epoch?: BigNumberish | null, rewardAmount?: null): UserLoyaltyRewardsEmittedEventFilter; "UserRewardClaimed(address,uint256)"(user?: string | null, rewardAmount?: null): UserRewardClaimedEventFilter; UserRewardClaimed(user?: string | null, rewardAmount?: null): UserRewardClaimedEventFilter; }; estimateGas: { claimReward(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; doEmitRewards(overrides?: CallOverrides): Promise; emitUserLoyaltyReward(user: string, epoch: BigNumberish, userLoyaltyLevel: BigNumberish, amountDeposited: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; emitUserLoyaltyRewardBatch(userRewardInputs: UserRewardInputStruct[], ksuTokenPrice: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; loyaltyEpochRewardRates(loyaltyLevel: BigNumberish, overrides?: CallOverrides): Promise; recoverERC20(tokenAddress: string, tokenAmount: BigNumberish, recipient: string, overrides?: Overrides & { from?: string; }): Promise; setDoEmitRewards(doEmitRewards_: boolean, overrides?: Overrides & { from?: string; }): Promise; setRewardRatesPerLoyaltyLevel(loyaltyEpochRewardRateInput: LoyaltyEpochRewardRateInputStruct[], overrides?: Overrides & { from?: string; }): Promise; totalUnclaimedRewards(overrides?: CallOverrides): Promise; userRewards(user: string, overrides?: CallOverrides): Promise; }; populateTransaction: { claimReward(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; doEmitRewards(overrides?: CallOverrides): Promise; emitUserLoyaltyReward(user: string, epoch: BigNumberish, userLoyaltyLevel: BigNumberish, amountDeposited: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; emitUserLoyaltyRewardBatch(userRewardInputs: UserRewardInputStruct[], ksuTokenPrice: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; loyaltyEpochRewardRates(loyaltyLevel: BigNumberish, overrides?: CallOverrides): Promise; recoverERC20(tokenAddress: string, tokenAmount: BigNumberish, recipient: string, overrides?: Overrides & { from?: string; }): Promise; setDoEmitRewards(doEmitRewards_: boolean, overrides?: Overrides & { from?: string; }): Promise; setRewardRatesPerLoyaltyLevel(loyaltyEpochRewardRateInput: LoyaltyEpochRewardRateInputStruct[], overrides?: Overrides & { from?: string; }): Promise; totalUnclaimedRewards(overrides?: CallOverrides): Promise; userRewards(user: string, overrides?: CallOverrides): Promise; }; }