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 declare namespace IDualMining { type UserInfoStruct = { lastUpdateTimestamp: BigNumberish; lastParentAccTotalRewards: BigNumberish; lastAccTotalRewards: BigNumberish; reward: BigNumberish; }; type UserInfoStructOutput = [ lastUpdateTimestamp: bigint, lastParentAccTotalRewards: bigint, lastAccTotalRewards: bigint, reward: bigint ] & { lastUpdateTimestamp: bigint; lastParentAccTotalRewards: bigint; lastAccTotalRewards: bigint; reward: bigint; }; } export interface IDualMiningInterface extends Interface { getFunction(nameOrSignature: "addRewards" | "claim" | "getPendingUserRewards" | "getRewardsAvailable" | "getUserInfo" | "init" | "updatePool" | "updateUser"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Claim" | "Initialized" | "MiningEnded"): EventFragment; encodeFunctionData(functionFragment: "addRewards", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "claim", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPendingUserRewards", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getRewardsAvailable", values?: undefined): string; encodeFunctionData(functionFragment: "getUserInfo", values: [AddressLike]): string; encodeFunctionData(functionFragment: "init", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updatePool", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "updateUser", values: [ AddressLike, BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; decodeFunctionResult(functionFragment: "addRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingUserRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRewardsAvailable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "init", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateUser", data: BytesLike): Result; } export declare namespace ClaimEvent { type InputTuple = [user: AddressLike, rewardAmount: BigNumberish]; type OutputTuple = [user: string, rewardAmount: bigint]; interface OutputObject { user: string; rewardAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InitializedEvent { type InputTuple = [ caller: AddressLike, initialParentAccRewardsPerShare: BigNumberish, timestamp: BigNumberish ]; type OutputTuple = [ caller: string, initialParentAccRewardsPerShare: bigint, timestamp: bigint ]; interface OutputObject { caller: string; initialParentAccRewardsPerShare: bigint; timestamp: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MiningEndedEvent { type InputTuple = [finalParentAccRewardsPerShare: BigNumberish]; type OutputTuple = [finalParentAccRewardsPerShare: bigint]; interface OutputObject { finalParentAccRewardsPerShare: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IDualMining extends BaseContract { connect(runner?: ContractRunner | null): IDualMining; waitForDeployment(): Promise; interface: IDualMiningInterface; 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; addRewards: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; claim: TypedContractMethod<[user: AddressLike], [void], "nonpayable">; getPendingUserRewards: TypedContractMethod<[ user: AddressLike ], [ bigint ], "view">; getRewardsAvailable: TypedContractMethod<[], [bigint], "view">; getUserInfo: TypedContractMethod<[ user: AddressLike ], [ IDualMining.UserInfoStructOutput ], "view">; init: TypedContractMethod<[ initialParentAccRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; updatePool: TypedContractMethod<[ poolRewards: BigNumberish, accRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; updateUser: TypedContractMethod<[ user: AddressLike, oldShares: BigNumberish, oldRewardDebt: BigNumberish, poolRewards: BigNumberish, userRewards: BigNumberish, accRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addRewards"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "claim"): TypedContractMethod<[user: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "getPendingUserRewards"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getRewardsAvailable"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getUserInfo"): TypedContractMethod<[ user: AddressLike ], [ IDualMining.UserInfoStructOutput ], "view">; getFunction(nameOrSignature: "init"): TypedContractMethod<[ initialParentAccRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updatePool"): TypedContractMethod<[ poolRewards: BigNumberish, accRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateUser"): TypedContractMethod<[ user: AddressLike, oldShares: BigNumberish, oldRewardDebt: BigNumberish, poolRewards: BigNumberish, userRewards: BigNumberish, accRewardsPerShare: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "Claim"): TypedContractEvent; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "MiningEnded"): TypedContractEvent; filters: { "Claim(address,uint256)": TypedContractEvent; Claim: TypedContractEvent; "Initialized(address,uint256,uint256)": TypedContractEvent; Initialized: TypedContractEvent; "MiningEnded(uint256)": TypedContractEvent; MiningEnded: TypedContractEvent; }; }